Я очень хорошо знаю общую проблему с заданием статического конструктора, однако мне любопытно узнать, применимо ли это и в случае композиции.Правильно ли задан статический конструктор с составом
Скажем, у меня есть следующие:
#include <vector>
using std::vector;
class Foo
{
static vector<int> myVector;
Foo(int i) { myVector.push_back(i); }
~Foo() {}
};
vector<int> Foo::myVector;
Foo foo_1(1);
Foo foo_2(2);
у меня есть какие-либо гарантии того, что т е р myVector будет вызываться перед любой из вызовов на CTOR Foo в?
Само собой разумеется, проверяя это и обнаружив, что он работает так, как надеется, ничего не доказывает.
Внутри того же самого ТУ статическая инициализация фактически упорядочена (исключение экземпляра шаблона). Проблема в том, что у вас разные ТУ. –
Порядок четко определен _inside_ a единица перевода – sehe
@vsoftco, пожалуйста, укажите, что это дубликат, потому что я искал экстенсивно и не мог найти ничего, что конкретно затрагивает эту конкретную проблему, в частности, имеет ли состав какой-либо эффект. Благодарю. – dgnuff