Domande taggate «initializer-list»



8
initializer_list e sposta la semantica
Posso spostare elementi da un std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Poiché std::intializer_list<T>richiede un'attenzione speciale da parte del compilatore e non ha una semantica dei valori come i normali contenitori …

6
Perché std :: initializer_list non è un linguaggio integrato?
Perché non è std::initializer_listintegrato un linguaggio di base? Mi sembra che sia una caratteristica abbastanza importante di C ++ 11 e tuttavia non ha una propria parola chiave riservata (o qualcosa di simile). Invece, initializer_listè solo una classe modello dalla libreria standard che ha una speciale mappatura implicita dalla nuova …

5
Posso inizializzare da elenco un vettore di tipo solo spostamento?
Se passo il codice seguente attraverso la mia istantanea GCC 4.7, prova a copiare i messaggi di posta unique_ptrelettronica nel vettore. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Ovviamente non può funzionare perché std::unique_ptrnon è copiabile: errore: utilizzo …




6
Gamma innocente basata su loop non funzionante
Non compila quanto segue : #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Provalo su godbolt L'errore del compilatore è: error: assignment of read-only reference 's' Ora nel mio caso …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.