Warum ist keine std::initializer_listKernsprache eingebaut? Es scheint mir, dass es ein ziemlich wichtiges Feature von C ++ 11 ist und dennoch kein eigenes reserviertes Schlüsselwort (oder ähnliches) hat. Stattdessen handelt initializer_listes sich nur um eine Vorlagenklasse aus der Standardbibliothek, die über eine spezielle implizite Zuordnung aus der neuen Syntax der …
Wenn ich den folgenden Code durch meinen GCC 4.7-Snapshot übergebe, wird versucht, das unique_ptrs in den Vektor zu kopieren . #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Offensichtlich kann das nicht funktionieren, weil std::unique_ptres nicht kopierbar ist: Fehler: …
Wie kann ich den Wert von a enum classin C ++ 11 ausgeben ? In C ++ 03 ist es so: #include <iostream> using namespace std; enum A { a = 1, b = 69, c= 666 }; int main () { A a = A::c; cout << a << …
Ich habe mich gefragt, wie ich richtig prüfen soll, ob ein std::functionleer ist. Betrachten Sie dieses Beispiel: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Dieser Code wird in MSVC einwandfrei kompiliert, aber wenn ich doSomething()ohne …
In Bjarne Stroustrups The C ++ Programming Language 4. Ausgabe, Abschnitt 36.3.6 STL-ähnliche Operationen, wird der folgende Code als Beispiel für die Verkettung verwendet : void f2() { std::string s = "but I have heard it works even if you don't believe in it" ; s.replace(0, 4, "" ).replace( s.find( …
Eine Vorschau-Version von Visual Studio 2012 (die nächste Version nach VS2010) ist jetzt verfügbar . Weiß jemand, welche neuen C ++ 11-Funktionen es unterstützt? (Ich bin im Moment nicht in der Lage, es auszuprobieren).
In C ++ 11 haben wir diese neue Syntax zum Initialisieren von Klassen, die uns eine Vielzahl von Möglichkeiten zum Initialisieren von Variablen bietet. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> …
Ich versuche, die Länge eines String-Literals zur Kompilierungszeit zu berechnen. Dazu verwende ich folgenden Code: #include <cstdio> int constexpr length(const char* str) { return *str ? 1 + length(str + 1) : 0; } int main() { printf("%d %d", length("abcd"), length("abcdefgh")); } Alles funktioniert wie erwartet, das Programm druckt 4 …
In C # gibt es einen schönen Syntaxzucker für Felder mit Getter und Setter. Außerdem mag ich die automatisch implementierten Eigenschaften, mit denen ich schreiben kann public Foo foo { get; private set; } In C ++ muss ich schreiben private: Foo foo; public: Foo getFoo() { return foo; } …
Ich möchte wissen was [=]macht? Hier ist ein kurzes Beispiel template <typename T> std::function<T (T)> makeConverter(T factor, T offset) { return [=] (T input) -> T { return (offset + input) * factor; }; } auto milesToKm = makeConverter(1.60936, 0.0); Wie würde der Code funktionieren []anstatt [=]? Ich nehme das …
Ich habe mit C ++ Lambdas und deren impliziter Konvertierung in Funktionszeiger gespielt. Mein Startbeispiel war, sie als Rückruf für die ftw-Funktion zu verwenden. Dies funktioniert wie erwartet. #include <ftw.h> #include <iostream> using namespace std; int main() { auto callback = [](const char *fpath, const struct stat *sb, int typeflag) …
Im folgenden Code ist der erste Aufruf von foomehrdeutig und kann daher nicht kompiliert werden. Die zweite mit dem +vor dem Lambda hinzugefügten wird in die Überladung des Funktionszeigers aufgelöst. #include <functional> void foo(std::function<void()> f) { f(); } void foo(void (*f)()) { f(); } int main () { foo( [](){} …
Wo sollte ich Makros bevorzugen und wo sollte ich constexpr bevorzugen ? Sind sie nicht im Grunde gleich? #define MAX_HEIGHT 720 vs. constexpr unsigned int max_height = 720;
Ich möchte einige Informationen darüber, wie man richtig über C ++ 11-Schließungen nachdenkt und std::function wie sie implementiert werden und wie mit Speicher umgegangen wird. Obwohl ich nicht an vorzeitige Optimierung glaube, habe ich die Angewohnheit, die Auswirkungen meiner Auswahl auf die Leistung beim Schreiben von neuem Code sorgfältig zu …
Ich versuche, die Chronobibliothek für Timer und Dauer zu verwenden. Ich möchte in der Lage sein, eine Duration frameStart;(von App-Start) und eine Duration frameDelta;(Zeit zwischen Frames) zu haben. Ich muss in der Lage sein, die frameDeltaDauer als Millisekunden und Float-Sekunden zu erhalten. Wie geht das mit den neuen c ++ …
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.