下面的代码是否安全(不保证静态初始化顺序?)。静态初始化在依赖关系的情况下
在一些图书馆:
class A {
A() : x_ = 0 {
}
int add() {
return ++x_;
}
};
namespace S {
static A a_;
}
#define ADD(varname) \
namespace S { \
static int v_##varname = a_.add(); \
}
宏添加将在多个地方使用。是否保证在v_ ## varname之前为任何ADD宏使用情况初始化a_?
你是什么意思安全 - 这是否甚至编译? –