Als «c++» getaggte Fragen

89
Funktionsdeklaration innerhalb oder außerhalb der Klasse

Ich bin ein JAVA-Entwickler, der versucht, C ++ zu lernen, aber ich weiß nicht wirklich, was die beste Vorgehensweise für Standardfunktionsdeklarationen ist. In der Klasse: class Clazz { public: void Fun1() { //do something } } Oder draußen: class Clazz { public: void Fun1(); } Clazz::Fun1(){ // Do...

89
CMake kann die Linkersprache mit C ++ nicht bestimmen

Ich versuche, ein cmake hello world-Programm unter Windows 7 x64 mit Visual Studio 2010 und Cygwin auszuführen, kann aber anscheinend auch nicht funktionieren. Meine Verzeichnisstruktur ist wie folgt: HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ Ich mache...

89
Anfangskapazität des Vektors in C ++

Was ist das capacity()von einem, std::vectordas mit dem Standardkonstruktor erstellt wird? Ich weiß, dass das size()Null ist. Können wir feststellen, dass ein standardmäßig konstruierter Vektor keine Heap-Speicherzuordnung aufruft? Auf diese Weise wäre es möglich, ein Array mit einer beliebigen...

89
Was würde 'std:;' in c ++ tun?

Ich habe kürzlich Code geändert und einen bereits vorhandenen Fehler in einer Zeile innerhalb einer Funktion gefunden: std:;string x = y; Dieser Code wird immer noch kompiliert und funktioniert wie erwartet. Die Zeichenfolgendefinition funktioniert, weil diese Datei vorhanden ist using namespace...

89
So erstellen Sie ein bedingtes typedef in C ++

Ich versuche so etwas zu tun: #include <iostream> #include <random> typedef int Integer; #if sizeof(Integer) <= 4 typedef std::mt19937 Engine; #else typedef std::mt19937_64 Engine; #endif int main() { std::cout << sizeof(Integer) << std::endl; return 0; } aber ich bekomme...

89
Was bedeutet es, etwas „ODR-zu verwenden“?

Dies kam gerade im Zusammenhang mit einer anderen Frage auf . Anscheinend werden Mitgliedsfunktionen in Klassenvorlagen nur instanziiert, wenn sie ODR-verwendet werden. Könnte jemand erklären, was genau das bedeutet. Der Wikipedia-Artikel über One Definition Rule (ODR) erwähnt " ODR-Verwendung "...

89
Warum ist memmove schneller als memcpy?

Ich untersuche Leistungs-Hotspots in einer Anwendung, die 50% ihrer Zeit in memmove verbringt (3). Die Anwendung fügt Millionen von 4-Byte-Ganzzahlen in sortierte Arrays ein und verschiebt die Daten mithilfe von memmove "nach rechts", um Platz für den eingefügten Wert zu schaffen. Meine Erwartung...

89
Warum sollte das Zeichen 'A' mit 0x41 verglichen werden?

Ich habe mir C ++ - Code angesehen und das folgende Konstrukt gefunden: if('A' == 0x41) { // ... } else if('A' == 0xc1) { // ... } else { // ... } Ich erhalte eine Visual Studio- Warnung mit folgenden Worten: Warnung Der bedingte Ausdruck C4127 ist konstant. Visual Studio hat eindeutig Recht -...

89
Was ist der Zweck einer Gewerkschaft mit nur einem Mitglied?

Als ich Seastar-Quellcode las , bemerkte ich, dass es eine Gewerkschaftsstruktur namens gibt, tx_sidedie nur ein Mitglied hat. Ist das ein Hack, um ein bestimmtes Problem zu lösen? Zu Ihrer Information, ich füge die folgende tx_sideStruktur ein: union tx_side { tx_side() {} ~tx_side() {} void...

89
Gibt es einen Grund, keine globalen Lambdas zu verwenden?

Wir hatten eine Funktion, die ein nicht erfassendes Lambda in sich selbst verwendete, z. void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Jetzt wurde die vom Lambda implementierte Funktionalität an anderer Stelle benötigt, sodass ich das...