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).


2
Wie überträgt std :: move () Werte in RValues?
Ich habe gerade festgestellt, dass ich die Logik von nicht vollständig verstanden habe std::move(). Zuerst habe ich es gegoogelt, aber es scheint nur Dokumente zu geben, wie man es benutzt std::move(), nicht wie seine Struktur funktioniert. Ich meine, ich weiß, was die Vorlagenelementfunktion ist, aber wenn ich mir die std::move()Definition …

2
C ++ 0x Lambda-Erfassung nach Wert immer const?
Gibt es eine Möglichkeit, nach Wert zu erfassen und den erfassten Wert nicht konstant zu machen? Ich habe einen Bibliotheks-Funktor, den ich erfassen und eine Methode aufrufen möchte, die nicht konstant ist, aber sein sollte. Das Folgende wird nicht kompiliert, aber foo :: operator () const behebt es. struct foo …
102 c++  lambda  const  c++11 

3
Ist gcc 4.8 oder früher fehlerhaft in Bezug auf reguläre Ausdrücke?
Ich versuche, std :: regex in einem C ++ 11-Code zu verwenden, aber es scheint, dass die Unterstützung etwas fehlerhaft ist. Ein Beispiel: #include <regex> #include <iostream> int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr << "st|mt|tr" << " matches st? " << std::regex_match("st", r) << …
101 c++  regex  gcc  c++11  libstdc++ 


13
Kann ich in C ++ einen autonomen Selbstmitgliedertyp implementieren?
In C ++ fehlt das Äquivalent zum PHP- selfSchlüsselwort , das den Typ der einschließenden Klasse ergibt. Es ist einfach genug, es pro Klasse zu fälschen: struct Foo { typedef Foo self; }; aber ich musste Foonochmal schreiben . Vielleicht verstehe ich das eines Tages falsch und verursache einen stillen …
101 c++  c++11 

3
Wie spezialisiere ich std :: hash <Key> :: operator () für benutzerdefinierte Typen in ungeordneten Containern?
Benutzerdefinierte Schlüsseltypen in zu unterstützen std::unordered_set&lt;Key&gt;und std::unordered_map&lt;Key, Value&gt; man hat zu schaffen operator==(Key, Key)und ein Hash Funktors: struct X { int id; /* ... */ }; bool operator==(X a, X b) { return a.id == b.id; } struct MyHash { size_t operator()(const X&amp; x) const { return std::hash&lt;int&gt;()(x.id); } }; …


3
Ist die Implementierung von gcc std :: unordered_map langsam? Wenn ja warum?
Wir entwickeln eine hochleistungskritische Software in C ++. Dort benötigen wir eine gleichzeitige Hash-Map und implementieren eine. Also haben wir einen Benchmark geschrieben, um herauszufinden, mit wie viel langsamer unsere gleichzeitige Hash-Map verglichen wird std::unordered_map. Aber es std::unordered_mapscheint unglaublich langsam zu sein ... Das ist also unser Mikro-Benchmark (für die …

2
Unterschied zwischen std :: result_of und decltype
Ich habe einige Probleme, die Notwendigkeit std::result_ofin C ++ 0x zu verstehen . Wenn ich es richtig verstanden habe, result_ofwird es verwendet, um den resultierenden Typ des Aufrufs eines Funktionsobjekts mit bestimmten Arten von Parametern zu erhalten. Beispielsweise: template &lt;typename F, typename Arg&gt; typename std::result_of&lt;F(Arg)&gt;::type invoke(F f, Arg a) { …
100 c++  c++11  decltype  result-of 

11
Kompilieren Sie Time String Hashing
Ich habe an einigen Stellen gelesen, dass es mit den neuen String-Literalen von C ++ 11 möglich sein könnte, den Hash eines Strings zur Kompilierungszeit zu berechnen. Es scheint jedoch niemand bereit zu sein, herauszukommen und zu sagen, dass es möglich sein wird oder wie es gemacht werden würde. Ist …




4
Warum kopieren wir dann umziehen?
Ich habe irgendwo Code gesehen, in dem jemand beschlossen hat, ein Objekt zu kopieren und es anschließend in ein Datenelement einer Klasse zu verschieben. Dies ließ mich insofern verwirrt, als ich dachte, der springende Punkt beim Bewegen sei, das Kopieren zu vermeiden. Hier ist das Beispiel: struct S { S(std::string …

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.