Als «c++11» getaggte Fragen

Verwenden Sie dieses Tag für Code, der als C ++ 11 kompiliert werden muss (ohne die in C ++ 14 oder höher eingeführten Funktionen zu verwenden).

5
Wofür sind Inline-Namespaces?
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 …

8
C ++ 11 Reverse Range-basierte For-Loop
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 = …
321 c++  c++11  ranged-loops 



5
Thread mit Mitgliedsfunktion starten
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 …

8
Unterschied zwischen make_shared und normal shared_ptr in C ++
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? …
275 c++  c++11  shared-ptr 

1
Wie ist "int main () {(([] () {}) ());}" in C ++ gültig?
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 …
271 c++  c++11  lambda  syntax 

10
Sollten wir ein shared_ptr als Referenz oder als Wert übergeben?
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 …
269 c++  c++11  boost  shared-ptr 

16
Warum hat C ++ keinen Garbage Collector?
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 …



8
Ein Tupel „entpacken“, um einen passenden Funktionszeiger aufzurufen
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, …



12
to_string ist kein Mitglied von std, sagt g ++ (mingw)
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 …
245 c++  c++11  g++  mingw  tostring 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.