我正在使用类似以下代码段进行一些初始化操作。 我知道
p<T> :: i_
的初始化是无序的。 我相信h
是有序的,因此我应该能够合理地推断它被初始化的顺序。 鉴于在定义h
之前已经包含了p
的头文件,是否有保证p<T> :: i_
将在h
之前初始化?struct helper
{
template <typename T>
helper(const T&, int i)
{
p<T>::i_::push_back(i);
}
};
static helper h;
以下定义了类p。
template <typename T>
struct p
{
static std::vector<int> i_;
};
template <typename T>
std::vector<int> p<T>::i_;
helper
没有一个默认的构造函数。 - Igor Tandetnikh
? - David Rodríguez - dribeash
是有序的。相对于什么是有序的呢? - jrok