Desde C++11, C++ incorporó la inicialización uniforme, una forma unificada de inicializar variables, objetos y contenedores usando llaves {}.
Veamos un ejemplo:
#include <iostream>
#include <vector>
int main() {
int x{10}; // variable
std::vector<int> v{1, 2, 3, 4}; // lista de inicialización
for (int n : v)
std::cout << n << " ";
}
Salida:
1 2 3 4
Ventajas:
- Evita conversiones implícitas peligrosas.
- Funciona con cualquier tipo de dato.
- Es más coherente y clara que las formas anteriores (=, ()).
Por ejemplo, esto no compila porque perdería precisión:
int n{3.5}; // error: pérdida de información
Mientras que con = sí lo haría (truncando el valor).
Por eso, la inicialización uniforme hace el código más seguro y predecible.
