In C ++ 5.1.1 / 3 [expr.prim.general] heißt es: Der Typ und die Wertekategorie [von this] werden innerhalb einer statischen Elementfunktion definiert. Was bedeutet das? Wie ist es relevant? Beachten Sie, dass: this darf nicht in der Deklaration einer statischen Elementfunktion erscheinen
Ich lese Scott Meyers "Effective C ++" Buch. Es wurde erwähnt, dass es eingebaute Zeiger gibt tr1::shared_ptrund tr1::weak_ptrsich wie diese verhält, aber sie verfolgen, wie viele tr1::shared_ptrsauf ein Objekt zeigen. Dies wird als Referenzzählung bezeichnet. Dies funktioniert gut, um Ressourcenlecks in azyklischen Datenstrukturen zu verhindern. Wenn jedoch zwei oder mehr …
Ich habe : class Foo { public: void log() { } void a() { log(); } void b() { log(); } }; Gibt es eine Möglichkeit, wie ich jede Methode Fooaufrufen log()kann, ohne dass ich log () explizit als erste Zeile jeder Funktion eingeben muss? Ich möchte dies tun, damit …
Ich habe kürzlich versucht, Qt Creator 1.3.2, Qt 4.6.2 und GCC 4.4.0 (32-Bit-Version) unter Windows 7 (64-Bit) zu verwenden, um eine Anwendung mit einigen der experimentellen C ++ 0x-Erweiterungen und zu kompilieren Der folgende (schwerwiegende) Fehler ist aufgetreten: Diese Datei erfordert Compiler- und Bibliotheksunterstützung für den kommenden ISO C ++ …
Ich bin etwas verwirrt über die Rolle std::unique_lockbei der Arbeit mit std::condition_variable. Soweit ich die Dokumentation verstanden habe , std::unique_lockhandelt es sich im Grunde genommen um einen aufgeblähten Schlossschutz mit der Möglichkeit, den Zustand zwischen zwei Schlössern auszutauschen. Ich habe bisher pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)für diesen Zweck verwendet (ich denke, …
Ich möchte eine std::setmit einer benutzerdefinierten Vergleichsfunktion erstellen . Ich könnte es als Klasse mit definieren operator(), aber ich wollte die Möglichkeit genießen, ein Lambda dort zu definieren, wo es verwendet wird. Deshalb habe ich beschlossen, die Lambda-Funktion in der Initialisierungsliste des Konstruktors der Klasse zu definieren, die das std::setals …
Wie kann ich herausfinden, welchen Typ der Compiler bei Verwendung des autoSchlüsselworts abgeleitet hat? Beispiel 1: Einfacher auto tickTime = 0.001; Wurde dies als floatoder oder abgeleitet?double? Beispiel 2: Komplexer (und meine gegenwärtigen Kopfschmerzen): typedef std::ratio<1, 1> sec; std::chrono::duration<double, sec > timePerTick2{0.001}; auto nextTickTime = std::chrono::high_resolution_clock::now() + timePerTick2; Welcher Typ …
In C ++ 11 wurde eine sehr praktische Funktion eingeführt, die als Raw-String-Literale bezeichnet wird. Hierbei handelt es sich um Strings ohne Escape-Zeichen. Und anstatt dies zu schreiben: regex mask("\\t[0-9]+\\.[0-9]+\\t\\\\SUB"); Sie können dies einfach schreiben: regex mask(R"(\t[0-9]+\.[0-9]+\t\\SUB)"); Ziemlich lesbarer. Beachten Sie jedoch zusätzliche Klammern um die Zeichenfolge, die platziert werden …
Ich habe alten Code aktualisiert und versucht, nach Möglichkeit auf c ++ 11 zu aktualisieren. Mit dem folgenden Code habe ich Uhrzeit und Datum in meinem Programm angezeigt #include <iostream> #include <string> #include <stdio.h> #include <time.h> const std::string return_current_time_and_date() const { time_t now = time(0); struct tm tstruct; char buf[80]; …
Was ist der richtige Weg, um ein unique_ptr zu erstellen, das ein Array enthält, das dem freien Speicher zugewiesen ist? Visual Studio 2013 unterstützt dies standardmäßig, aber wenn ich gcc Version 4.8.1 unter Ubuntu verwende, treten Speicherlecks und undefiniertes Verhalten auf. Das Problem kann mit diesem Code reproduziert werden: #include …
Früher dachte ich, wenn in C ++ ein Konstruktor eine Ausnahme auslöst, wird der Destruktor dieser "teilweise konstruierten" Klasse nicht aufgerufen. Aber es scheint, dass es in C ++ 11 nicht mehr stimmt: Ich habe den folgenden Code mit g ++ kompiliert und er druckt " X destructor" auf die …
Bitte schauen Sie sich den folgenden einfachen Code an: class Foo { public: Foo(){} ~Foo(){} Foo(const Foo&){} Foo& operator=(const Foo&) { return *this; } }; static Foo g_temp; const Foo& GetFoo() { return g_temp; } Ich habe versucht, so zu verwenden auto: auto my_foo = GetFoo(); Ich habe erwartet, dass …
Ich verwende c ++ 11, aber auch einige Bibliotheken, die nicht dafür konfiguriert sind und eine Typkonvertierung benötigen. Insbesondere brauche ich einen Weg, um std::__cxx11::stringauf regulär std::stringumzusteigen, aber googeln kann ich nicht finden, und dies (string)funktioniert nicht. Wenn ich nicht konvertiere, erhalte ich folgende Linker-Fehler: undefined reference to `H5::CompType::insertMember(std::__cxx11::basic_string<char, std::char_traits<char>, …
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.