Wenn Sie Code wie lesen auto&& var = foo(); Wo foogibt eine Funktion nach Wert des Typs zurück T. Dann varist ein lWert vom Typ rWertreferenz auf T. Aber wofür bedeutet das var? Heißt das, wir dürfen die Ressourcen von stehlen var? Gibt es vernünftige Situationen, in denen Sie auto&&dem …
Der Titel ist ziemlich selbsterklärend. Ich habe Qt Creator 2.7.0 heruntergeladen und versuche, einen grundlegenden C ++ 11-Code zu kompilieren: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Ich erhalte die folgende Fehlermeldung: range based for loops are not allowed in …
Ist es möglich, durch konstante Referenz in einem Lambda-Ausdruck zu erfassen? Ich möchte, dass die unten markierte Zuweisung fehlschlägt, zum Beispiel: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string …
Scott Meyers veröffentlichte Inhalt und Status seines nächsten Buches EC ++ 11. Er schrieb, dass ein Punkt im Buch "Vermeiden Sie std::enable_ifin Funktionssignaturen" sein könnte . std::enable_if kann als Funktionsargument, als Rückgabetyp oder als Klassenvorlage oder Funktionsvorlagenparameter verwendet werden, um Funktionen oder Klassen bedingt aus der Überlastungsauflösung zu entfernen. In …
Wenn ich eine Basisklasse (oder Schnittstellenklasse) deklariere und einen Standardwert für einen oder mehrere ihrer Parameter spezifiziere, müssen die abgeleiteten Klassen dieselben Standardwerte angeben, und wenn nicht, welche Standardwerte werden in den abgeleiteten Klassen angezeigt? Nachtrag: Ich bin auch daran interessiert, wie dies über verschiedene Compiler hinweg gehandhabt werden kann …
Dieser Code macht konzeptionell dasselbe für die drei Zeiger (sichere Zeigerinitialisierung): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Was sind also die Vorteile der Zuweisung von Zeigern nullptrgegenüber der Zuweisung von Werten NULLoder 0?
Der C ++ 11-Standard (ISO / IEC 14882: 2011) lautet § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Für C ++ ist es in Ordnung, da ein Zeiger auf ein String-Literal schädlich ist, da jeder Versuch, es zu ändern, zu einem Absturz führt. Aber warum …
Dank C ++ 11 haben wir die std::functionFamilie der Funktor-Wrapper erhalten. Leider höre ich immer wieder nur schlechte Dinge über diese Neuzugänge. Am beliebtesten ist, dass sie schrecklich langsam sind. Ich habe es getestet und sie saugen wirklich im Vergleich zu Vorlagen. #include <iostream> #include <functional> #include <string> #include <chrono> …
Ich habe das hier gesehen: Move Constructor ruft den Move Constructor der Basisklasse auf Könnte jemand erklären: der Unterschied zwischen std::moveund std::forward, vorzugsweise mit einigen Codebeispielen? Wie man leicht darüber nachdenkt und wann man welche benutzt
Ich habe Probleme, die Verwendung intelligenter Zeiger als Klassenmitglieder in C ++ 11 zu verstehen. Ich habe viel über intelligente Zeiger gelesen und glaube zu verstehen, wie unique_ptrund shared_ptr/ oder wie ich weak_ptrim Allgemeinen arbeite. Was ich nicht verstehe, ist die tatsächliche Verwendung. Es scheint, als würde jeder empfehlen unique_ptr, …
Warum sollte ich in der Praxis den einen oder anderen bevorzugen? Was sind technische Unterschiede, außer dass std::threades sich um eine Klasse handelt?
Wie kann ich in einem C ++ 11-Lambda durch Verschieben (auch als r-Wert-Referenz bezeichnet) erfassen? Ich versuche so etwas zu schreiben: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };
Ich versuche, ein einfaches Beispiel zum Arbeiten zu bringen, um zu verstehen, wie man es benutzt std::enable_if. Nachdem ich diese Antwort gelesen hatte , dachte ich, es sollte nicht zu schwierig sein, ein einfaches Beispiel zu finden. Ich möchte verwenden std::enable_if, um zwischen zwei Elementfunktionen zu wählen und nur eine …
C ++ 0x zeigt ein Beispiel für die Verwendung von std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Wann ist es immer vorteilhaft zu verwenden std::forward? Außerdem muss es &&in der Parameterdeklaration verwendet werden. Ist es in allen Fällen gültig? Ich dachte, Sie &&müssten temporäre Funktionen an eine Funktion …
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.