Насколько мне известно, есть три способа инициализации переменной в C++.
int x = 0; // C-like initialization
int x (0); // Constructor initialization
int x {0}; // Uniform initialization
Равномерная инициализация была введена для C++ 11, чтобы обеспечить более равномерный синтаксис для инициализации различных типов переменных, что требовало другого синтаксиса в C++ 03.
Каковы различия между C-like, конструктором и равномерной инициализацией? И я должен всегда использовать равномерную инициализацию?