原始内置类型初始化

Primitive built-in types initialization

我对如何初始化像 int 或 double 这样的内置类型有点困惑。我说的是复制初始化和直接初始化:

int a = 0; // copy initialization
int b(0);  // direct initialization 

最佳做法是什么?直接初始化是否适用于所有 C++ 版本?

"best practice" 可能不是可以明确说明的东西 - 有些人喜欢一个,有些人喜欢另一个,现代编译器应该对两者做同样的事情,除非你的空对象的构造函数做了编译器可以做的事情'消除。对于编译器本机知道的基本类型,生成的代码应该是相同的[可能某些编译器会产生细微的差异,因为代码采用不同的路径或类似的路径,因此代码生成的顺序略有不同,从而导致不同的集合优化或不同的寄存器分配等,但如果有任何可测量的差异,通常我会感到失望]

我不知道哪个 C++ 版本不支持简单类型。显然,对于 类 和其他复杂对象,它在某种程度上取决于可用的构造函数等。