Qual è il modo corretto di utilizzare la gamma basata su C ++ 11 for? Quale sintassi dovrebbe essere usata? for (auto elem : container)o for (auto& elem : container)oppure for (const auto& elem : container)? O qualcun altro?
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2 Questo è un esempio di un pezzo di codice C ++ 11: auto text = std::unique_ptr<char[]>(new char[len]); L'editor Eclipse si lamenta di: Function 'unique_ptr' could not be resolved La compilation di Makefile funziona bene. Come impedire a Eclipse di lamentarsi di questo tipo di …
È possibile passare una funzione lambda come puntatore a funzione? In tal caso, devo fare qualcosa in modo errato perché visualizzo un errore di compilazione. Considera il seguente esempio using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec} {} private: DecisionFn _dec; }; int main() { int …
A volte si afferma che C ++ 11/14 può offrirti un aumento delle prestazioni anche quando si compila semplicemente il codice C ++ 98. La giustificazione è di solito lungo le linee della semantica dello spostamento, poiché in alcuni casi i costruttori di valori vengono generati automaticamente o ora fanno …
Ogni contenitore standard ha un metodo begine endper restituire iteratori per quel contenitore. Tuttavia, C ++ 11 ha apparentemente introdotto funzioni gratuite chiamate std::begine std::endche chiamano le funzioni begine endmember. Quindi, invece di scrivere auto i = v.begin(); auto e = v.end(); tu scriveresti auto i = std::begin(v); auto e …
Sarà questo l'esempio: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Genera l'errore: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char> >&, char const*)' main.o: In function `__static_initialization_and_destruction_0(int,int)': …
Se ho una variabile all'interno di una funzione (diciamo, un array di grandi dimensioni), ha senso dichiararla entrambe statice constexpr? constexprgarantisce che l'array sia creato in fase di compilazione, quindi sarebbe staticinutile? void f() { static constexpr int x [] = { // a few thousand elements }; // do …
Con il nuovo standard, ci sono nuovi modi di fare le cose, e molti sono più belli dei vecchi, ma il vecchio va ancora bene. È anche chiaro che il nuovo standard non si deprezza molto ufficialmente, per motivi di compatibilità con le versioni precedenti. Quindi la domanda che rimane …
Ho messo le mie abilità in C ++ sullo scaffale diversi anni fa e sembra che ora, quando ne ho ancora bisogno, il panorama sia cambiato. Ora abbiamo C ++ 11 e la mia comprensione è che si sovrappone a molte funzionalità Boost. Esiste un riassunto in cui si trovano …
Perché la funzione inversa per la std::listclasse nella libreria standard C ++ ha un runtime lineare? Penso che per elenchi doppiamente collegati la funzione inversa avrebbe dovuto essere O (1). L'inversione di un elenco doppiamente collegato dovrebbe comportare solo il cambio dei puntatori di testa e coda.
[dcl.attr.noreturn] fornisce il seguente esempio: [[ noreturn ]] void f() { throw "error"; // OK } ma non capisco qual è il punto [[noreturn]], perché il tipo di ritorno della funzione è già void. Quindi, qual è il punto noreturndell'attributo? Come dovrebbe essere usato?
Mi chiedo perché cbegine cendsono stati introdotti in C ++ 11? Quali sono i casi quando si chiamano questi metodi fa la differenza dai sovraccarichi const di begine end?
Ho questo codice che non funziona, ma penso che l'intento sia chiaro: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } Ma …
Voglio avere un static const chararray nella mia classe. GCC si è lamentato e mi ha detto che avrei dovuto usare constexpr, anche se ora mi sta dicendo che è un riferimento indefinito. Se faccio dell'array un membro non membro, lo compila. Cosa sta succedendo? // .hpp struct foo { …
Con il nuovo standard in arrivo (e parti già disponibili in alcuni compilatori), il nuovo tipo std::unique_ptrdovrebbe essere un sostituto per std::auto_ptr. Il loro utilizzo si sovrappone esattamente (quindi posso fare una ricerca / sostituzione globale sul mio codice (non che lo farei, ma se lo facessi)) o dovrei essere …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.