Als «c++11» getaggte Fragen

Verwenden Sie dieses Tag für Code, der als C ++ 11 kompiliert werden muss (ohne die in C ++ 14 oder höher eingeführten Funktionen zu verwenden).

4
Was sagt uns auto &&?
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 …

6
Wie aktiviere ich C ++ 11 in Qt Creator?
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 …
167 c++  qt  c++11 

8
Lambda-Erfassung als konstante Referenz?
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 …
166 c++  c++11  lambda  c++14 

3
Warum sollte ich std :: enable_if in Funktionssignaturen vermeiden?
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 …

6
Können virtuelle Funktionen Standardparameter haben?
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 …
164 c++  c++11  c++03 

11
Wie konvertiere ich stark typisierte Enum automatisch in int?
#include <iostream> struct a { enum LOCAL_A { A1, A2 }; }; enum class b { B1, B2 }; int foo(int input) { return input; } int main(void) { std::cout << foo(a::A1) << std::endl; std::cout << foo(static_cast<int>(b::B2)) << std::endl; } Das a::LOCAL_Aist es, was die stark typisierte Aufzählung zu erreichen …

7
Was sind die Vorteile von nullptr?
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?
163 c++  c++11  null  c++-faq  nullptr 


7
std :: function vs template
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> …


2
Verwenden intelligenter Zeiger für Klassenmitglieder
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, …


6
Verschieben Sie die Erfassung in Lambda
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; };

7
std :: enable_if zum bedingten Kompilieren einer Mitgliedsfunktion
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 …
156 c++  templates  g++  c++11 

3
Wann sollte std :: forward verwendet werden, um Argumente weiterzuleiten?
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 …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.