Каков порядок инициализации для членов статических данных класса шаблона в файле?

В данном файле, если у меня есть,

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 :: t; ? Это четко определено?

7
задан iammilind 14 July 2011 в 03:21
поделиться