c++ for-loop

c++ - ¿Cuál es la siguiente lista de detrás de las escenas dentro del rango de bucle for?



for-loop (2)

¿Qué es el {1,2,3,4,5} temporal en el bucle for detrás de escena?

a std::initializer_list<int>

Estoy estudiando C ++ y vi un bucle for bucle basado for rango como este:

for (int i : {1,2,3,4,5}) std::cout << i << '' '';

¿Qué es el {1,2,3,4,5} temporal en el bucle for detrás de escena?


El objeto aquí es una instancia de std::initializer_list<int> . De la referencia (énfasis mío):

Un objeto std :: initializer_list se construye automáticamente cuando:

una lista-iniciada se utiliza para listar-inicializar un objeto, donde el constructor correspondiente acepta un parámetro std :: initializer_list

se utiliza una lista-iniciada como el operando correcto de asignación o como un argumento de llamada de función, y el operador / función de asignación correspondiente acepta un parámetro std :: initializer_list

una lista-iniciada está vinculada a automática, incluso en un rango para bucle