Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.

8
vector :: at vs. vector :: operator []
Ich weiß, dass dies at()langsamer ist als []aufgrund seiner Grenzprüfung, die auch in ähnlichen Fragen wie C ++ Vector bei / [] Operatorgeschwindigkeit oder :: std :: vector :: at () vs Operator [] << überraschende Ergebnisse diskutiert wird !! 5 bis 10 mal langsamer / schneller! . Ich verstehe …
94 c++  stl  stdvector 

1
Was bedeutet der Begriff "freie Funktion" in C ++?
Beim Lesen der Dokumentation zu boost :: test bin ich auf den Begriff "freie Funktion" gestoßen. Was ich verstehe ist, dass eine freie Funktion jede Funktion ist, die nichts zurückgibt (ihr Rückgabetyp ist ungültig). Aber nach weiterem Lesen scheinen freie Funktionen auch keine Argumente zu akzeptieren. Aber ich bin mir …
94 c++ 

2
Magische Zahl in boost :: hash_combine
Die boost::hash_combineVorlagenfunktion verweist auf einen Hash (aufgerufen seed) und ein Objekt v. Laut den Dokumenten wird es seedmit dem Hash von vby kombiniert seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); Ich kann sehen, dass dies deterministisch ist. Ich verstehe, warum ein XOR verwendet wird. …

6
Berechnen der Länge eines C-Strings zur Kompilierungszeit. Ist das wirklich ein constexpr?
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 …

6
M_PI funktioniert mit math.h, jedoch nicht mit cmath in Visual Studio
Ich verwende Visual Studio 2010. Ich habe gelesen, dass es in C ++ besser ist, <cmath>als zu verwenden <math.h>. Aber im Programm versuche ich zu schreiben (Win32-Konsolenanwendung, leeres Projekt), wenn ich schreibe: #define _USE_MATH_DEFINES #include <math.h> es kompiliert, während wenn ich schreibe #define _USE_MATH_DEFINES #include <cmath> es scheitert mit Fehler …

15
Hat C ++ 11 Eigenschaften im C # -Stil?
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; } …
93 c#  c++  class  c++11 




13
Entwirrung des Ergebnisses von std :: type_info :: name
Ich arbeite derzeit an einem Protokollierungscode, der unter anderem Informationen über die aufrufende Funktion drucken soll. Dies sollte relativ einfach sein, Standard C ++ hat eine type_infoKlasse. Dies enthält den Namen der Typ-ID-Klasse / Funktion / etc. aber es ist verstümmelt. Es ist nicht sehr nützlich. Dh typeid(std::vector<int>).name()zurück St6vectorIiSaIiEE. Gibt …
93 c++  gcc  name-mangling 






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.