我有一个全局范围的原子指针数组。这些是初始化为nullptr吗,还是有必要手动完成,例如
// Found a reason to use double-braces, but is it needed??
static std::atomic<foo *> bar[CONSTANT_BAZ] {{nullptr}};
原子被视为内置类型(更准确地说,它们有一个微不足道的默认构造函数),因此,它们的全局数组将自动零初始化为nullptr
。
仅在本地情况下,您必须手动初始化它,但即使这样,也不必使用双大括号或nullptr
。这就足够了:
void baz() {
std::atomic<foo *> bar[CONSTANT_BAZ]{};
}