Domande taggate «c++11»

Utilizzare questo tag per il codice che deve essere compilato come C ++ 11 (non utilizzando alcuna funzionalità introdotta in C ++ 14 o successive).

4
Perché copiamo e poi ci spostiamo?
Ho visto del codice da qualche parte in cui qualcuno ha deciso di copiare un oggetto e successivamente spostarlo in un membro dati di una classe. Questo mi ha lasciato confuso in quanto pensavo che il punto centrale dello spostamento fosse evitare di copiare. Ecco l'esempio: struct S { S(std::string …

2
Quali sono le regole per il token "..." nel contesto dei modelli variadici?
In C ++ 11 ci sono modelli variadici come questo: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Ci sono alcune curiosità su questo: L'espressione std::forward<Args>(args)...usa entrambi Argse argsma solo un ...token. Inoltre std::forwardè una funzione template non variadica che accetta solo …


4
Come viene implementata la funzione std ::?
Secondo le fonti che ho trovato, un'espressione lambda viene essenzialmente implementata dal compilatore creando una classe con operatore di chiamata di funzione sovraccarico e le variabili a cui si fa riferimento come membri. Ciò suggerisce che la dimensione delle espressioni lambda varia e, dato un numero sufficiente di variabili di …
98 c++  c++11  lambda 



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 …


4
Differenza tra std :: system_clock e std :: steady_clock?
Qual'è la differenza tra std::system_clocke std::steady_clock? (Un caso esemplificativo che illustri risultati / comportamenti diversi sarebbe fantastico). Se il mio obiettivo è quello di misurare con precisione il tempo di esecuzione di funzioni (come un punto di riferimento), quale sarebbe la scelta migliore tra i std::system_clock, std::steady_clocke std::high_resolution_clock?
97 c++  c++11  timer  chrono 


3
Perché non c'è std :: stou?
C ++ 11 ha aggiunto alcune nuove funzioni di conversione delle stringhe: http://en.cppreference.com/w/cpp/string/basic_string/stoul Include stoi (string to int), stol (string to long), stoll (string to long long), stoul (string to unsigned long), stoull (string to unsigned long long). Notevole in sua assenza è una funzione stou (string to unsigned). C'è …
96 c++  string  c++11  std 



3
Come verificare correttamente se std :: function è vuoto in C ++ 11?
Mi chiedevo come controllare correttamente se un std::functionè vuoto. Considera questo esempio: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Questo codice si compila bene in MSVC ma se chiamo doSomething()senza inizializzare eventFuncil codice ovviamente si …

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 …

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.