C ++ 11 erlaubt inline namespaces, deren Mitglieder sich ebenfalls automatisch im Gehäuse befinden namespace. Ich kann mir keine nützliche Anwendung vorstellen - kann jemand bitte ein kurzes, prägnantes Beispiel für eine Situation geben, in der eine inline namespacebenötigt wird und in der es die idiomatischste Lösung ist? (Außerdem ist …
Gibt es einen Containeradapter, der die Richtung der Iteratoren umkehrt, damit ich mit einer bereichsbasierten for-Schleife in umgekehrter Reihenfolge über einen Container iterieren kann? Mit expliziten Iteratoren würde ich Folgendes konvertieren: for (auto i = c.begin(); i != c.end(); ++i) { ... das sehr gut finden: for (auto i = …
Gibt es einen Unterschied zwischen den folgenden Definitionen? const double PI = 3.141592653589793; constexpr double PI = 3.141592653589793; Wenn nicht, welcher Stil wird in C ++ 11 bevorzugt?
Ist es möglich, dass C ++ - Code sowohl dem C ++ 03- Standard als auch dem C ++ 11- Standard entspricht, aber je nachdem, unter welchem Standard er kompiliert wird, unterschiedliche Aktionen ausführt?
Ich versuche, eine std::threadFunktion mit einem Element zu erstellen, die keine Argumente akzeptiert und zurückgibt void. Ich kann keine Syntax finden, die funktioniert - der Compiler beschwert sich, egal was passiert. Was ist der richtige Weg, um zu implementieren spawn(), dass ein std::threadausgeführtes zurückgegeben wird test()? #include <thread> class blub …
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Es gibt viele Google- und Stackoverflow-Posts, aber ich kann nicht verstehen, warum dies make_sharedeffizienter ist als die direkte Verwendung shared_ptr. Kann mir jemand Schritt für Schritt erklären, wie Objekte erstellt und von beiden ausgeführt werden, damit ich verstehen kann, wie make_sharedeffizient sie sind? …
Ich bin kürzlich auf den folgenden esoterischen Code gestoßen. int main(){(([](){})());} Formatieren Sie es wie folgt neu, um es besser lesbar zu machen: int main(){ (([](){})()); // Um... what?!?! } Aber ich kann mir nicht vorstellen, wie (([](){})())gültiger Code ist. Es sieht nicht nach Funktionszeigersyntax aus. Es kann kein Operator-Überladetrick …
Wenn eine Funktion eine shared_ptr(von Boost oder C ++ 11 STL) benötigt, übergeben Sie sie: durch konstante Referenz: void foo(const shared_ptr<T>& p) oder nach Wert : void foo(shared_ptr<T> p)? Ich würde die erste Methode bevorzugen, weil ich vermute, dass sie schneller sein würde. Aber lohnt sich das wirklich oder gibt …
Ich stelle diese Frage nicht wegen der Vorzüge der Speicherbereinigung. Mein Hauptgrund für diese Frage ist, dass ich weiß, dass Bjarne Stroustrup gesagt hat, dass C ++ irgendwann einen Garbage Collector haben wird. Warum wurde es nicht hinzugefügt? Es gibt bereits einige Garbage Collectors für C ++. Ist dies nur …
Ich habe angefangen, intelligente Zeiger von C ++ 11 zu studieren, und sehe keine nützliche Verwendung von std::weak_ptr. Kann mir jemand sagen, wann std::weak_ptres nützlich / notwendig ist?
Kurzes Beispiel: #include <iostream> int main() { int n; [&](){n = 10;}(); // OK [=]() mutable {n = 20;}(); // OK // [=](){n = 10;}(); // Error: a by-value capture cannot be modified in a non-mutable lambda std::cout << n << "\n"; // "10" } Die Frage: Warum brauchen wir …
Ich versuche, in einer std::tuplevariierenden Anzahl von Werten zu speichern , die später als Argumente für einen Aufruf eines Funktionszeigers verwendet werden, der den gespeicherten Typen entspricht. Ich habe ein vereinfachtes Beispiel erstellt, das das Problem zeigt, das ich nur schwer lösen kann: #include <iostream> #include <tuple> void f(int a, …
Wie viele Leute in diesen Tagen habe ich die verschiedenen Funktionen von C ++ 11 ausprobiert. Einer meiner Favoriten ist der "Range-Based for Loops". Ich verstehe das: for(Type& v : a) { ... } Ist äquivalent zu: for(auto iv = begin(a); iv != end(a); ++iv) { Type& v = *iv; …
Ich habe einen Code in einem Header, der so aussieht: #include <memory> class Thing; class MyClass { std::unique_ptr< Thing > my_thing; }; Wenn ich diesen Header in eine ThingCPP einbinde, die die Typdefinition nicht enthält , wird dies unter VS2010-SP1 nicht kompiliert: 1> C: \ Programme (x86) \ Microsoft Visual …
Ich mache ein kleines Vokabular-Erinnerungsprogramm, in dem Wörter nach dem Zufallsprinzip auf mich gerichtet werden, um Bedeutungen zu erhalten. Ich möchte die Standard-C ++ - Bibliothek verwenden, wie uns Bjarne Stroustroup sagt, aber ich bin sofort auf ein scheinbar seltsames Problem gestoßen. Ich möchte eine longGanzzahl in ändern std::string, um …
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.