Non sono sicuro di ciò a cui si fa riferimento per "inizializzazione/dichiarazione" in questo contesto. Nel seguito, la matrice è una prvalue
template<typename T> using alias = T;
int main() { return alias<int[]>{1, 2, 3}[0]; }
Questo può essere verificato decltype(alias<int[]>{1, 2, 3})
avere il tipo int[3]
. La creazione di array in questo modo al volo non era inizialmente pensata per funzionare, ma è stata inserita nel progetto di lavoro a margine del lavoro correlato sull'inizializzazione uniforme. Quando mi sono reso conto che alcuni paragrafi nella bozza di lavoro C++ 0x non consentono un caso speciale di questa creazione al volo di array temporaries mentre altri paragrafi lo consentono, ho inviato un rapporto sui difetti al comitato C++, che poi sulla base l'implementazione parzialmente funzionante del GCC ha deciso di sostenere pienamente questo.
fonte
2012-02-04 10:17:56
possibile duplicato di [Penso che possa essere venuto fuori con un esempio di rvalue del tipo di matrice] (http://stackoverflow.com/questions/4058151/i-think-i-ay-have-come-up- con-un-esempio-di-rvalore-di-tipo-matrice) –