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