Código como este puede funcionar bien:¿Cuál es el tipo de lista de inicialización en la matriz C++?
char str[] = {'a', 'b', '\0'};
La izquierda es una variable automática (matriz).
código como este puede NO trabajo:
char *str = {'a', 'b', '\0'};
El lado izquierdo es un puntero. El puntero apunta a un espacio desconocido, por lo que esto fallará.
Mi pregunta es, ¿cuál es el tipo del lado derecho?
En C++ 11, una lista de inicialización se convierte en std::initializer_list
. ¿Pero qué hay del viejo C++ 03?
El RHS no es siempre una 'std :: initializer_list' en C++ 11. – juanchopanza
@juanchopanza ¿Hay documentos breves sobre esto? – liuyanghejerry
Quizás [aquí] (http://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists) y [aquí] (http://www2.research.att.com/~bs/C++0xFAQ .html # init-list) aunque no es 100% claro. Tuve que esforzarme mucho en el estándar. – juanchopanza