Пример
Код: Выделить всё
template< typename T >
struct uninitialized
{
T t;
uninitialized(){};
uninitialized & operator=( T const & inT ){ t = inT ; return *this; }
uninitialized & operator=( T && inT ){ t = std::move( inT ); return *this; }
};
std::vector< uninitialized< int > > example()
{
auto vector = std::vector< uninitialized< int > >(500);
// Other code unrelated to vector
for( auto & element : vector ) element = 0; // For loop as stand in for potentially parallel context
// "0" is simply used as a stand in to keep the example simple
// Code which might use vector
return vector;
}
Если это имеет значение для ответчика, предполагаемое использование — для простые числовые типы, такие как int, или агрегатные типы, состоящие из этих числовых типов.
(Кроме того, чтобы избежать ненужных комментариев, Reserve + push_back не является здесь актуально, поскольку важен окончательный порядок вектора)
Подробнее здесь: https://stackoverflow.com/questions/787 ... d-to-undef