std::initializer_list::initializer_list
De cppreference.com
initializer_list() noexcept;
|
(desde C++11) (hasta C++14) |
|
constexpr initializer_list() noexcept;
|
(desde C++14) | |
Construye una lista de inicializadores vacía.
Parámetros
(ninguno)
Complejidad
Constante
Ejemplo
Ejecuta este código
#include <iostream>
#include <initializer_list>
int main()
{
std::initializer_list<int> lista_vacia;
std::cout << "lista_vacia.size(): " << lista_vacia.size() << '\n';
// crear listas de inicializadores usando inicialización de lista
std::initializer_list<int> digitos {1, 2, 3, 4, 5};
std::cout << "digitos.size(): " << digitos.size() << '\n';
// regla especial para auto significa que 'fracciones' tiene el
// tipo std::initializer_list<double>
auto fracciones = {3.14159, 2.71828};
std::cout << "fracciones.size(): " << fracciones.size() << '\n';
}
Salida:
lista_vacia.size(): 0
digitos.size(): 5
fracciones.size(): 2
Notas
A pesar de la falta de constructores, es posible crear listas de inicializadores no vacías. Instancias de std::initializer_list se construyen implícitamente cuando:
- Una lista-de-inicializadores-entre-llaves se utiliza en la inicialización de lista, incluyendo inicialización de lista de llamada a función y expresiones de asignación (no se deben confundir con listas de inicializadores del constructor).
- Una lista-de-inicializadores-entre-llaves se vincula a
auto, incluyendo en un bucleforbasado en rango.