В данном файле, если у меня есть,
struct A { static int a; };
struct B { static int b; };
int A::a;
int B::b;
Тогда я всегда могу ожидать, что A :: a
инициализируется до B :: b
. Теперь для того же файла возьмем случай шаблона
,
template<typename T>
struct X { static T t; };
template<typename T>
T X<T>::t;
Предположим, X
создан с помощью A
и B
и его статический
член используется произвольно где-то в коде, как, X :: t
и X :: t
, тогда каков должен быть порядок для инициализации шаблона
статический член X
? Это четко определено?