Ich habe gelesen und gehört, dass C ++ 11 Unicode unterstützt. Ein paar Fragen dazu: Wie gut unterstützt die C ++ - Standardbibliothek Unicode? Tut std::stringwas es soll? Wie benutze ich es? Wo liegen mögliche Probleme?
Diese Antwort von @R. Martinho Fernandes zeigt, dass die Safe-Bool-Sprache in C ++ 11 anscheinend veraltet ist, da sie durch eine einfache ersetzt werden kann explicit operator bool() const; gemäß dem Standardzitat in der Antwort §4 [conv] p3: Ein Ausdruck e kann für eine erfundene temporäre Variable genau dann implizit …
Wie entferne ich eine Karte, während ich sie iteriere? mögen: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Wenn ich es benutze map.erase, werden die Iteratoren ungültig
Unter Verwendung von C ++ 11, Ubuntu 14.04, GCC Standard-Toolchain . Dieser Code schlägt fehl: constexpr std::string constString = "constString"; Fehler: Der Typ 'const string {aka const std :: basic_string}' der constexpr-Variablen 'constString' ist nicht wörtlich ... weil ... 'std :: basic_string' einen nicht trivialen Destruktor hat Ist es möglich, …
Nur eine kleine Frage zu shared_ptr. Ist es eine gute Praxis, shared_ptrauf ein Array zu zeigen? Beispielsweise, shared_ptr<int> sp(new int[10]); Wenn nicht, warum dann nicht? Ein Grund, den ich bereits kenne, ist, dass man das nicht erhöhen / verringern kann shared_ptr. Daher kann es nicht wie ein normaler Zeiger auf …
Ich verstehe, dass dies std::atomic<>ein atomares Objekt ist. Aber inwieweit atomar? Nach meinem Verständnis kann eine Operation atomar sein. Was genau bedeutet es, ein Objekt atomar zu machen? Zum Beispiel, wenn zwei Threads gleichzeitig den folgenden Code ausführen: a = a + 12; Ist dann die gesamte Operation (sagen wir …
In seinem Buch stellt The C++ Standard Library (Second Edition)Nicolai Josuttis fest, dass Lambdas vom Compiler besser optimiert werden können als einfache Funktionen. Darüber hinaus optimieren C ++ - Compiler Lambdas besser als normale Funktionen. (Seite 213) Warum ist das so? Ich dachte, wenn es um Inlining geht, sollte es …
Betrachten Sie das folgende Programm: struct ghost { // ghosts like to pretend that they don't exist ghost* operator&() const volatile { return 0; } }; int main() { ghost clyde; ghost* clydes_address = &clyde; // darn; that's not clyde's address :'( } Wie bekomme ich die clydeAdresse? Ich suche …
Es gibt ein ziemlich dummes Problem mit der Zahl pi in C und C ++. Soweit ich weiß, ist die M_PIDefinition in math.hkeiner Norm erforderlich. Neue C ++ - Standards führten eine Menge komplizierter Mathematik in die Standardbibliothek ein - hyperbolische Funktionen std::hermiteund std::cyl_bessel_iverschiedene Zufallszahlengeneratoren und so weiter und so …
In der schönen Antwort auf die Copy-and-Swap-Sprache gibt es einen Code, für den ich ein bisschen Hilfe brauche: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb_array& second) // nothrow { using std::swap; swap(first.mSize, second.mSize); swap(first.mArray, second.mArray); } // ... }; und er fügt eine Notiz hinzu Es …
Für eine Klasse möchte ich einige Funktionszeiger auf Mitgliedsfunktionen derselben Klasse in einem Objekt mapspeichern std::function. Aber ich versage gleich zu Beginn mit diesem Code: class Foo { public: void doSomething() {} void bindFunction() { // ERROR std::function<void(void)> f = &Foo::doSomething; } }; Ich erhalte error C2064: term does not …
Ich habe dies ursprünglich nur als Frage zu Destruktoren gepostet, aber jetzt füge ich die Berücksichtigung des Standardkonstruktors hinzu. Hier ist die ursprüngliche Frage: Wenn ich meiner Klasse einen Destruktor geben möchte, der virtuell ist, aber ansonsten dem entspricht, was der Compiler generieren würde, kann ich Folgendes verwenden =default: class …
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.