Se esiste, come sarebbe un std::mapelenco di inizializzatori esteso? Ho provato alcune combinazioni di ... beh, tutto quello che potevo pensare con GCC 4.4, ma non ho trovato nulla che fosse compilato.
Sto provando a compilare usando g++e i flag -std=c++11o c++0x. Tuttavia, ottengo questo errore cc1plus: error: unrecognized command line option "-std=c++11" g ++ --versione g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is …
Il codice seguente è abbastanza banale e mi aspettavo che si compilasse correttamente. struct A { struct B { int i = 0; }; B b; A(const B& _b = B()) : b(_b) {} }; Ho testato questo codice con g ++ versione 4.7.2, 4.8.1, clang ++ 3.2 e 3.3. …
Sto lavorando con la memoria di alcuni lambda in C ++, ma sono un po 'perplesso dalla loro dimensione. Ecco il mio codice di prova: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout …
Sono un semplice programmatore. Le variabili dei membri della mia classe molto spesso sono costituite da tipi POD e contenitori STL. Per questo motivo raramente devo scrivere operatori di assegnazione o copiare costruttori, poiché questi sono implementati di default. Aggiungete a questo, se uso std::movesu oggetti non mobili, utilizza l'operatore …
Immaginiamo di avere una struttura per contenere 3 doppie con alcune funzioni membro: struct Vector { double x, y, z; // ... Vector &negate() { x = -x; y = -y; z = -z; return *this; } Vector &normalize() { double s = 1./sqrt(x*x+y*y+z*z); x *= s; y *= s; …
In C ++ è possibile utilizzare la staticparola chiave all'interno di un'unità di traduzione per influenzare la visibilità di un simbolo (dichiarazione di variabile o funzione). In n3092, questo era deprecato: Allegato D.2 [depr.static] L'uso della parola chiave static è deprecato quando si dichiarano oggetti nell'ambito dello spazio dei nomi …
La descrizione di std::is_voidafferma che: Fornisce il valore della costante del membro che è uguale a true, se T è il tipo void, const void, volatile void o const volatile void. Allora cosa potrebbe essere const void, o un volatile void? Questa risposta afferma che il const voidtipo restituito non …
È possibile memorizzare un pacchetto di parametri in qualche modo per un uso successivo? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible …
std::arrayè di gran lunga superiore agli array C. E anche se voglio interagire con il codice legacy, posso semplicemente usare std::array::data(). C'è qualche motivo per cui vorrei mai un array della vecchia scuola?
Se dichiaro un oggetto racchiuso in un puntatore condiviso: std::shared_ptr<myClass> myClassObject(new myClass()); quindi ho voluto passarlo come argomento a un metodo: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr<myClass> arg1) { arg1->someField = 4; } Quanto sopra incrementa semplicemente il conteggio dei riferimenti di shared_pt e tutto va bene? O lascia un …
Prima di C ++ 11, potevamo eseguire solo l'inizializzazione in classe su membri const statici di tipo integrale o enumerazione. Stroustrup ne discute nelle sue domande frequenti su C ++ , fornendo il seguente esempio: class Y { const int c3 = 7; // error: not static static int c4 …
Considera il seguente programma: #include <string> #include <vector> using namespace std; struct T { int a; double b; string c; }; vector<T> V; int main() { V.emplace_back(42, 3.14, "foo"); } Non funziona: $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: In instantiation …
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.