codice come questo può funzionare bene:qual è il tipo di elenco di inizializzazione nell'array C++?
char str[] = {'a', 'b', '\0'};
La sinistra è una variabile automatica (array).
codice come questo può NON lavoro:
char *str = {'a', 'b', '\0'};
Il lato sinistro è un puntatore. Il puntatore punta a uno spazio sconosciuto, quindi questo fallirà.
La mia domanda è, qual è il tipo di lato destro?
In C++ 11, un elenco di inizializzazione diventa std::initializer_list
. Ma per quanto riguarda il vecchio C++ 03?
Il RHS non è sempre un 'std :: initializer_list' in C++ 11. – juanchopanza
@juanchopanza C'è qualche breve documento su questo? – liuyanghejerry
Forse [qui] (http://en.wikipedia.org/wiki/C%2B%2B11#Initializer_lists) e [qui] (http://www2.research.att.com/~bs/C++0xFAQ .html # init-list) anche se non è chiaro al 100%. Ho dovuto attraversare dolorosamente lo standard. – juanchopanza