¿Qué es una lista cerrada entre llaves si no es una lista_inicializador?

Hice una pregunta aquí:Extensión de por vida de un retorno initializer_list implicando el código no funcional:

const auto foo = [](const auto& a, const auto& b, const auto& c) { return {a, b, c}; };

Creí que la lambda estaba tratando de devolver unintializer_list (eso es malo, no hagas eso.) Pero tengo uncomentario:

No es uninitializer_list, es una lista de inicializador. Dos cosas diferentes

Solo pensé que cada vez que hacías una lista entre llaves estaba creando unintializer_list. Si eso no es lo que está sucediendo, ¿qué es una lista entre llaves?

Respuestas a la pregunta(4)

Su respuesta a la pregunta