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).




1
regressione delle prestazioni std :: vector quando si abilita C ++ 11
Ho trovato un'interessante regressione delle prestazioni in un piccolo frammento di C ++, quando abilito C ++ 11: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); …
235 c++  performance  gcc  c++11  vector 

4
Perché dovrei mai usare push_back invece di emplace_back?
I vettori C ++ 11 hanno la nuova funzione emplace_back. Diversamente push_back, che si basa sulle ottimizzazioni del compilatore per evitare copie, emplace_backutilizza l'inoltro perfetto per inviare gli argomenti direttamente al costruttore per creare un oggetto sul posto. Mi sembra che emplace_backfa tutto ciò che push_backpuò fare, ma qualche volta …
232 c++  c++11  std 


10
Le funzioni lambda possono essere modellate?
In C ++ 11, c'è un modo per modellare una funzione lambda? O è intrinsecamente troppo specifico per essere modellato? Capisco che posso invece definire una classica classe / funzione basata su modelli, ma la domanda è più simile: il linguaggio consente le funzioni lambda di modello?
230 c++  templates  lambda  c++11 

4
Che tipo di puntatore devo usare quando?
Ok, quindi l'ultima volta che ho scritto C ++ per vivere, std::auto_ptrc'era tutta la lib standard disponibile ed boost::shared_ptrera di gran moda. Non ho mai veramente esaminato gli altri tipi di puntatori intelligenti forniti. Comprendo che C ++ 11 ora fornisce alcuni dei tipi di boost creati, ma non tutti. …

10
Quali modifiche rivoluzionarie sono state introdotte in C ++ 11?
So che almeno una delle modifiche in C ++ 11 che causerà l'interruzione della compilazione di alcuni vecchi codici: l'introduzione di explicit operator bool() nella libreria standard, in sostituzione di vecchie istanze di operator void*(). Certo, il codice che questo si romperà è probabilmente un codice che non avrebbe dovuto …
227 c++  c++11 




2
Perché non posso push_back un unique_ptr in un vettore?
Cosa c'è di sbagliato in questo programma? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } L'errore: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …

6
make_unique e perfetto inoltro
Perché non esiste un std::make_uniquemodello di funzione nella libreria C ++ 11 standard? io trovo std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); un po 'prolisso. Quanto segue non sarebbe molto più bello? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Questo nasconde newbene e menziona il tipo solo una volta. Ad ogni modo, ecco …


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.