Здравствуйте, Erop, Вы писали:
YLS>>Какие-то проблемы реализации?
E>Никаких, только зачем это всё при живом векторе-то?
Единственная проблема — если класс не assignable и/или не copy constructible.
Тогда живым вектором не отделаешься.
Придётся городить собственный огород "по мотивам". Упрощённо,
MyClass* array = (MyClass*) new aligned_storage<MyClass>[count]; // (MyClass*) malloc(sizeof(T)*count);
for_each(array, array+count, [](MyClass& object) { new(&object) MyClass(first,second); } );
.....
for_each(array, array+count, [](MyClass& object) { object.~MyClass(); } );
delete[] (aligned_storage<T>*)array; // free(array);
С другой стороны, для крупных объектов (которые некопируемы по причине своих размеров, в том числе), можно припахать ptr_vector.
А для мелких — пересмотреть в сторону копируемости, либо двухфазной инициализации. (Первая фаза — в конструкторе, вторая — ручной вызов функции).