Ш>Но, вообще, это плохо. Коряво.
Это-то ясно. Под "правомерно" я подразумевал только лишь отсутствие UB.
Ш>Лучше сделать что-то вроде
Ш>template <class T>
struct VectorInit : public std::vector<T>
{
template <class Func>
VectorInit(Func func) { func((std::vector<T> &)*this); }
};
А это какое-то ООП головного мозга в терминальной стадии.
Но да, выглядит ънтерпрайзно. Почти так же солидно, как AbstractSingletonProxyFactoryBean