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.

6
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 Reserve unter Verwendung einer einzelnen Zuordnung zu erstellen, wie z std::vector<int> …

8
Effiziente Besetzung ohne Vorzeichen, um ein von der Implementierung definiertes Verhalten zu vermeiden
Ich möchte eine Funktion definieren, die ein unsigned intas-Argument verwendet und ein intkongruentes Modulo UINT_MAX + 1 an das Argument zurückgibt. Ein erster Versuch könnte so aussehen: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } Wie jeder Sprachanwalt weiß, ist das Casting von nicht signiert zu signiert für Werte größer als …


2
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 " nicht. Der Standard definiert es jedoch als Eine Variable, deren …

1
Was macht ## (Doppel-Hash) in einer Präprozessor-Direktive?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Die obige Zeile stammt aus Unreal 4, und ich weiß, dass ich sie in den unwirklichen Foren nachfragen könnte, aber ich denke, dies ist eine allgemeine C ++ - Frage, die hier gestellt werden muss. Ich verstehe, dass die erste Zeile ein Makro definiert, …


10
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 ein cd buildgefolgt von einem cmake ..und …
89 c++  c  cmake 

13
Wie funktioniert dieses Programm?
#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Es zeigt ein 0!! Wie ist das möglich? Was ist die Begründung? Ich habe absichtlich eine %din die printfErklärung aufgenommen, um das Verhalten von zu untersuchen printf.
88 c++  c  memory  printf  endianness 

4
Was ist das nächste Doppel zu 1.0, das ist nicht 1.0?
Gibt es eine Möglichkeit, programmgesteuert das Double zu erhalten, das 1.0 am nächsten kommt, aber nicht 1.0 ist? Ein hackiger Weg, dies zu tun, wäre, das Double auf eine gleich große Ganzzahl zu speichern und dann eine zu subtrahieren. So wie IEEE754-Gleitkommaformate funktionieren, würde dies dazu führen, dass der Exponent …


3
Wie ist void * a = & a legal?
Betrachten Sie den folgenden C ++ - Code: void* a = &a; Warum beschwert sich der Compiler nicht über die Verwendung eines nicht deklarierten Bezeichners? Was betrachtet der Compiler als Variable a? Ist es ein Zeiger auf ein nichtiges Objekt oder ein Zeiger auf einen void*Zeiger?
88 c++ 



3
Was genau ist die Als-ob-Regel?
Wie der Titel sagt, Was genau ist die "Als ob" -Regel? Eine typische Antwort wäre: Die Regel, die alle Codetransformationen zulässt, die das beobachtbare Verhalten des Programms nicht ändern Von Zeit zu Zeit erhalten wir Verhaltensweisen von bestimmten Implementierungen, die dieser Regel zugeordnet sind. Viele Male falsch. Also, was genau …
88 c++  c  optimization  c++-faq  as-if 


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.