Articles of c ++ 11

Was ist Konstruktorvererbung?

Was ist in C ++ 11 gemeint, wenn man den Konstruktor erbt? Wenn es das ist, was ich denke (Basisklassenkonstruktor wird in den Geltungsbereich der abgeleiteten class gebracht), welche Auswirkungen hat das auf meinen Code? Was sind die Anwendungen für ein solches Feature?

Erstellen eines Array-Initialisierers aus Tupel- oder Variadic-Vorlagenparametern

Ich möchte die Beschreibung eines beständigen Speicherlayouts (z. B. Flash oder EEPROM-Gerät) darstellen, das statisch in den Programmcode eingebettet ist (vorzugsweise im ROM-Abschnitt), aus einem Satz variativer Template-Parameter, wobei die erforderlichen Offsets automatisch zur Kompilierzeit berechnet werden . Das Ziel besteht darin, einen geeigneten Array-Initialisierer zu erstellen, der zur Laufzeit iteriert werden kann, ohne die […]

Was bedeutet das einzelne Et-Zeichen nach der Parameterliste einer Memberfunktionsdeklaration?

Von der Antwort hier . class wrap { public: operator obj() const & { … } //Copy from me. operator obj() && { … } //Move from me. private: obj data_; }; Ich weiß, dass && bedeutet, dass das Element aufgerufen wird, wenn das Objekt eine rvalue-Referenz ist. Aber was bedeutet das einzelne kaufmännische Und? […]

Was genau ist der “unmittelbare Kontext”, der im C ++ 11 Standard erwähnt wird, für den SFINAE gilt?

In Absatz 14.8.2 / 8 des C ++ 11-Standards sind die Bedingungen festgelegt, unter denen ein Substitutionserrors zu einem “harten” Kompilierungserrors führt (wodurch die Kompilierung fehlschlägt) oder zu einem “weichen” Fehler, der dies gerade tun würde Veranlassung des Compilers, eine Vorlage aus einer Gruppe von Kandidaten für die Überladungsauflösung zu vercasting (ohne die Kompilierung fehlzuschlagen […]

C ++ 11-functionen in Visual Studio 2012

Eine Vorschauversion von Visual Studio 2012 (die nächste Version nach VS2010) ist jetzt verfügbar . Weiß jemand, welche neuen C ++ 11 functionen es unterstützt? (Ich bin momentan nicht in der Lage, es auszuprobieren).

Finden Sie die Position des Elements in C ++ 11 range-based for loop?

Angenommen, ich habe den folgenden Code: vector list; for(auto& elem:list) { int i = elem; } Kann ich die Position von elem im Vektor finden, ohne einen separaten Iterator zu führen?

Wie kombiniere ich Hash-Werte in C ++ 0x?

C ++ 0x fügt hash(…) . Ich konnte jedoch keine hash_combine-function finden, wie in Boost dargestellt . Was ist der sauberste Weg, um so etwas zu implementieren? Vielleicht mit C ++ 0x xor_combine ?

Std :: function vs Vorlage

Dank C ++ 11 haben wir die std::function von Funktor-Wrappern erhalten. Leider höre ich nur schlechte Dinge über diese neuen Ergänzungen. Am beliebtesten ist, dass sie schrecklich langsam sind. Ich habe es getestet und sie sind wirklich im Vergleich zu Vorlagen. #include #include #include #include template float calc1(F f) { return -1.0f * f(3.3f) + […]

Pretty-Print std :: Tupel

Dies ist eine Fortsetzung meiner vorherigen Frage nach hübschen Druck-STL-Behältern , für die wir eine sehr elegante und vollständig allgemeine Lösung entwickelt haben. In diesem nächsten Schritt möchte ich pretty-printing für std::tuple mit variadischen Templates einschließen (das ist also streng genommen C ++ 11). Für std::pair sage ich einfach std::ostream & operator<<(std::ostream & o, const […]

Soll ich in C ++ std :: function oder einen functionszeiger verwenden?

Wenn ich eine Callback-function in C ++ implementiere, sollte ich immer noch den functionszeiger C-style verwenden: void (*callbackFunc)(int); Oder sollte ich std :: function verwenden: std::function callbackFunc;