Sollte ich beim Implementieren einer Rückruffunktion in C ++ weiterhin den Funktionszeiger im C-Stil verwenden: void (*callbackFunc)(int); Oder sollte ich std :: function verwenden: std::function< void(int) > callbackFunc;
Traditionell war / ist die standardmäßige und tragbare Methode zur Vermeidung mehrerer Header-Einschlüsse in C ++ die Verwendung des #ifndef - #define - #endifPre-Compiler-Direktiven-Schemas, das auch als Makro-Guard-Schema bezeichnet wird (siehe Code-Snippet unten). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif In den meisten Implementierungen / Compilern (siehe Bild unten) gibt es …
C ++ 11 stellen benutzerdefinierte Literale , die die Einführung neuer Literalsyntax basierend auf bestehende Literale ermöglichen ( int, hex, string, float) , so daß jeder Typ in der Lage , eine wörtliche Präsentation zu haben. Beispiele: // imaginary numbers std::complex<long double> operator "" _i(long double d) // cooked form …
Ich war irgendwie überrascht, dass der folgende Code kompiliert und ausgeführt wird (vc2012 & gcc4.7.2) class Foo { struct Bar { int i; }; public: Bar Baz() { return Bar(); } }; int main() { Foo f; // Foo::Bar b = f.Baz(); // error auto b = f.Baz(); // ok …
Nach dem, was ich in diesem Beitrag gesehen habe, habe ich beschlossen, das Buch Effective C ++ zu lesen . Aber jetzt, da es aufgrund von C ++ 11 viele neue Funktionen gibt und einige der bewährten Methoden geändert wurden, bin ich mir nicht sicher, ob dies tatsächlich eine gute …
Definiert der Standard genau, was ich mit einem Objekt tun kann, wenn es verschoben wurde? Früher dachte ich, dass alles, was Sie mit einem verschobenen Objekt tun können, darin besteht, es zu zerstören, aber das würde nicht ausreichen. Nehmen Sie zum Beispiel die Funktionsvorlage, swapwie sie in der Standardbibliothek definiert …
Manchmal muss ich std::threadmeine Anwendung beschleunigen. Ich weiß auchjoin() wartet, bis ein Thread abgeschlossen ist. Das ist leicht zu verstehen, aber was ist der Unterschied zwischen Anrufen detach()und Nichtanrufen? Ich dachte das ohne detach() , die Methode des Threads mit einem Thread unabhängig arbeiten wird. Nicht ablösen: void Someclass::Somefunction() { …
Der Kurzschlussverhalten der Operatoren &&und ||ist ein wunderbares Werkzeug für Programmierer. Aber warum verlieren sie dieses Verhalten, wenn sie überlastet sind? Ich verstehe, dass Operatoren nur syntaktischer Zucker für Funktionen sind, aber die Operatoren für boolhaben dieses Verhalten. Warum sollte es auf diesen einzelnen Typ beschränkt werden? Gibt es technische …
(Hinweis: Bei dieser Frage geht es darum, die Anzahl der Elemente nicht angeben zu müssen und dennoch zu ermöglichen, dass verschachtelte Typen direkt initialisiert werden.) In dieser Frage werden die Verwendungszwecke für ein C-Array wie erläutert int arr[20];. In seiner Antwort zeigt @James Kanze eine der letzten Hochburgen von C-Arrays, …
Das Erstellen und Bearbeiten von Zeichenfolgen während der Kompilierungszeit in C ++ bietet mehrere nützliche Anwendungen. Obwohl es möglich ist, Zeichenfolgen zur Kompilierungszeit in C ++ zu erstellen, ist der Prozess sehr umständlich, da die Zeichenfolge als variable Zeichenfolge deklariert werden muss, z using str = sequence<'H', 'e', 'l', 'l', …
Ich muss den Thread nicht korrekt beenden oder auf einen "Beenden" -Befehl reagieren lassen. Ich bin daran interessiert, den Thread mit reinem C ++ 11 gewaltsam zu beenden.
Ich verstehe nicht, warum ich das jemals tun sollte: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Warum nicht einfach sagen: S() {} // instead of S() = default; Warum dafür eine neue Syntax einführen?
Betrachten Sie den Fall einer Vorlagenfunktion mit variablen Vorlagenargumenten: template<typename Tret, typename... T> Tret func(const T&... t); Jetzt habe ich ein Tupel tvon Werten. Wie rufe ich func()mit den Tupelwerten als Argumente auf? Ich habe über das bind()Funktionsobjekt mit call()Funktion und auch über die apply()Funktion in verschiedenen inzwischen veralteten Dokumenten …
Wie der Titel schon sagt, versuche ich, mithilfe der neuen C ++ 11- <random>Bibliothek einen Weg zu finden, Zufallszahlen zu generieren . Ich habe es mit diesem Code versucht: std::default_random_engine generator; std::uniform_real_distribution<double> uniform_distance(1, 10.001); Das Problem mit dem Code, den ich habe, ist, dass jedes Mal, wenn ich ihn kompiliere …
Ist es bei einem Lambda möglich, den Parametertyp und den Rückgabetyp herauszufinden? Wenn ja, wie? Grundsätzlich möchte ich, lambda_traitswelche auf folgende Arten verwendet werden kann: auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Die Motivation dahinter ist, …
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.