Ich denke nicht, aber ich möchte bestätigen. Gibt es eine Verwendung für const Foo&&, wo Fooist ein Klassentyp?
Ich denke nicht, aber ich möchte bestätigen. Gibt es eine Verwendung für const Foo&&, wo Fooist ein Klassentyp?
Ich bin sehr verwirrt über Wert- & Standard- & Null-Initialisierung. und vor allem, wenn sie sich für die verschiedenen Standards C ++ 03 und C ++ 11 (und C ++ 14 ) einsetzen. Ich zitiere und versuche, eine wirklich gute Antwort Value- / Default- / Zero-Init C ++ 98 und C ++ 03 hier zu...
Ich habe versucht, einen Lambda-Vektor zu erstellen, bin aber gescheitert: auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 Bis zu Zeile 2 wird es gut kompiliert . Die Zeile 3 gibt jedoch einen Kompilierungsfehler...
Hallo, ich versuche std::threadmit G ++ zu verwenden. Hier ist mein Testcode #include <thread> #include <iostream> int main(int, char **){ std::thread tt([](){ std::cout<<"Thread!"<<std::endl; }); tt.join(); } Es wird kompiliert, aber wenn ich versuche, es auszuführen,...
Wenn ich ein Objekt deklariere, das in einen gemeinsamen Zeiger eingeschlossen ist: std::shared_ptr<myClass> myClassObject(new myClass()); dann wollte ich es als Argument an eine Methode übergeben: DoSomething(myClassObject); //the called method void
Die Beschreibung von std::is_voidbesagt, dass: Gibt den Wert der Elementkonstante an, der gleich true ist, wenn T vom Typ void, const void, volatile void oder const volatile void ist. Was könnte dann sein const voidoder ein volatile void? Diese Antwort besagt, dass der const voidRückgabetyp...
Betrachten Sie das folgende Programm: #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"); } Es funktioniert nicht: $ g++ -std=gnu++11 ./test.cpp In file included from...
Warum lässt C ++ 11 " deleted" -Funktionen an der Überlastungsauflösung teilnehmen ? Warum ist das nützlich? Oder mit anderen Worten, warum werden sie versteckt, anstatt vollständig gelöscht zu
Dies ist eine zweiteilige Frage, die sich mit der Atomizität von std::shared_ptr: 1. Soweit ich das beurteilen kann, std::shared_ptrist dies der einzige intelligente Zeiger <memory>, der atomar ist. Ich frage mich, ob es eine nicht-atomare Version von std::shared_ptrgibt (ich kann nichts...
Ich verstehe die richtige Art zu erfassen this (Ändern von Objekteigenschaften) in einem Lambda wie folgt: auto f = [this] () { /* ... */ }; Aber ich bin neugierig auf die folgende Besonderheit, die ich gesehen habe: class C { public: void foo() { // auto f = [] () { // this not captured auto f =...
Ist es möglich, ein Parameterpaket für eine spätere Verwendung zu speichern? 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...
Einer meiner Lieblingshasse von C-abgeleiteten Sprachen (als Mathematiker) ist das (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Was ist die beste Lösung? C ++ ermöglicht die Möglichkeit des Überladens von Vorlagen und Operatoren, aber beide sind für mich trübes...
Ich erwäge die Verwendung einiger C ++ 11-Funktionen (wie autozum Beispiel) in einigen plattformübergreifenden Projekten (Windows + Mac). Unter Windows unterstützt Visual Studio Teile des kommenden C ++ 11-Standards, mit denen ich Teile der Codebasis vereinfachen kann, sodass ich natürlich daran...
In C ++ 11 können Sie eine bereichsbasierte Version verwenden for, die wie die foreachanderer Sprachen fungiert. Es funktioniert sogar mit einfachen C-Arrays: int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } Woher weiß es, wann es aufhören soll? Funktioniert es nur mit...
bool compare_exchange_weak (T& expected, T val, ..); compare_exchange_weak()ist eines der in C ++ 11 bereitgestellten Vergleichsaustausch-Grundelemente. Es ist schwach in dem Sinne, dass es false zurückgibt, selbst wenn der Wert des Objekts gleich ist expected. Dies ist auf einen falschen...
Ich habe ein Projekt, das derzeit C ++ 11/14 verwendet, aber es erfordert so etwas wie std::filesystem, das nur in C ++ 17 verfügbar ist, und daher habe ich keine Chance, es derzeit zu verwenden. Ich sehe jedoch, dass es in meinem aktuellen Compiler als verfügbar ist std::experimental::filesystem....
Wenn ich folgende Erklärung habe: float a = 3.0 ; Ist das ein Fehler? Ich habe in einem Buch gelesen, 3.0das ein doubleWert ist und den ich als angeben muss float a = 3.0f. Ist es
Dies ist eine Fortsetzung meiner vorherigen Frage zu hübsch gedruckten STL-Containern , für die wir eine sehr elegante und vollständig allgemeine Lösung entwickelt haben. In diesem nächsten Schritt möchte ich das hübsche Drucken std::tuple<Args...>mit variadischen Vorlagen einschließen...
Im folgenden C++Programm funktioniert das Ändern eines statischen Datenelements aus einer constFunktion einwandfrei: class A { public: static int a; // static data member void set() const { a = 10; } }; Das Ändern eines nicht statischen Datenelements aus einer constFunktion funktioniert jedoch...
Wie kann ich zwei Vektoren auf dieselbe Weise sortieren, wobei Kriterien nur einen der Vektoren verwenden? Angenommen, ich habe zwei Vektoren gleicher Größe: vector<MyObject> vectorA; vector<int> vectorB; Ich sortiere dann vectorAmit einer Vergleichsfunktion. Diese Sortierung wurde neu...