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.

3
Warum ruft dies den Standardkonstruktor auf?
struct X { X() { std::cout << "X()\n"; } X(int) { std::cout << "X(int)\n"; } }; const int answer = 42; int main() { X(answer); } Ich hätte erwartet, dass dies auch gedruckt wird X(int), weil X(answer);als Besetzung von intbis Xoder interpretiert werden könnte überhaupt nichts, weil X(answer);als Deklaration einer …

3
Warum sollte Code aktiv versuchen, die Tail-Call-Optimierung zu verhindern?
Der Titel der Frage mag etwas seltsam sein, aber die Sache ist, dass meines Wissens nichts gegen die Optimierung von Tail Calls spricht. Beim Durchsuchen von Open Source-Projekten bin ich jedoch bereits auf einige Funktionen gestoßen, die aktiv versuchen, den Compiler daran zu hindern, eine Tail-Call-Optimierung durchzuführen, beispielsweise die Implementierung …

15
Sind C ++ Lese- und Schreibvorgänge eines int Atomic?
Ich habe zwei Threads, einen, der ein Int aktualisiert und einen, der es liest. Dies ist ein statistischer Wert, bei dem die Reihenfolge der Lese- und Schreibvorgänge keine Rolle spielt. Meine Frage ist, muss ich den Zugriff auf diesen Multi-Byte-Wert trotzdem synchronisieren? Oder anders ausgedrückt, kann ein Teil des Schreibvorgangs …


2
Was ist der Unterschied zwischen einem leeren und einem null std :: shared_ptr in C ++?
Auf der Seite cplusplus.comshared_ptr wird zwischen einer leeren std::shared_ptr und einer Null unterschieden shared_ptr . Die Seite cppreference.com ruft die Unterscheidung nicht explizit auf, sondern verwendet nullptrin ihrer Beschreibung des std::shared_ptrVerhaltens sowohl "leer" als auch Vergleich mit . Gibt es einen Unterschied zwischen einer leeren und einer Null shared_ptr? Gibt …
80 c++  c++11  shared-ptr 

1
mehr Geisteswahnsinn - Parser-Typen (Regeln vs int_parser <>) und Meta-Programmiertechniken
Die Frage ist unten fett gedruckt, das Problem wird auch durch das Destillationscodefragment gegen Ende zusammengefasst. Ich versuche, mein Typsystem (das Typsystem wechselt vom Typ zum String) zu einer einzigen Komponente (wie von Lakos definiert) zu vereinheitlichen. Ich benutze boost::array, boost::variantund boost::mpl, um dies zu erreichen. Ich möchte die Parser- …

28
Warum sollten Ausnahmen konservativ verwendet werden?
Ich sehe / höre oft Leute sagen, dass Ausnahmen nur selten verwendet werden sollten, aber niemals erklären, warum. Das mag zwar zutreffen, aber die Begründung ist normalerweise ein Problem: "Es wird aus einem bestimmten Grund als Ausnahme bezeichnet", was für mich die Art von Erklärung zu sein scheint, die von …
80 c++  exception 

7
Warum muss ich das Schlüsselwort 'auto' explizit schreiben?
Ich wechsle von C ++ 98 zu C ++ 11 und habe mich mit dem autoSchlüsselwort vertraut gemacht . Ich habe mich gefragt, warum wir explizit deklarieren müssen, autoob der Compiler den Typ automatisch ableiten kann. Ich weiß, dass C ++ eine stark typisierte Sprache ist und dies eine Regel …
80 c++  c++11  auto 

13
So implementieren Sie big int in C ++
Ich möchte eine große int-Klasse in C ++ als Programmierübung implementieren - eine Klasse, die Zahlen verarbeiten kann, die größer als eine lange int sind. Ich weiß, dass es bereits mehrere Open Source-Implementierungen gibt, aber ich würde gerne meine eigenen schreiben. Ich versuche ein Gefühl dafür zu bekommen, was der …

1
Verschachtelte Vorlagen mit abhängigem Bereich
Was ist der abhängige Bereich und welche Bedeutung hat der Typname im Zusammenhang mit dem folgenden Fehler? $ make g++ -std=gnu++0x main.cpp main.cpp:18:10: error: need 'typename' before 'ptrModel&lt;std::vector&lt;Data&gt; &gt;::Type' because 'ptrModel&lt;std::vector&lt;Data&gt; &gt;' is a dependent scope make: *** [all] Error 1 /* * main.cpp */ #include &lt;vector&gt; #include &lt;memory&gt; template&lt;typename …
80 c++  templates  scope  nested 

4
Wie kann diese Struktur eine Größe von == 0 haben?
Es gibt einen alten Beitrag, der nach einem Konstrukt fragt, für das er zurückkehren sizeofwürde 0. Es gibt einige Highscore-Antworten von Benutzern mit hohem Ansehen, die besagen, dass standardmäßig kein Typ oder keine Variable eine Größe von 0 haben kann. Und ich stimme dem zu 100% zu. Es gibt jedoch …



11
Überladung nach Rückgabetyp
Ich habe hier auf SO einige Fragen zu diesem Thema gelesen, die mir noch verwirrend erscheinen. Ich habe gerade angefangen, C ++ zu lernen, und ich habe noch keine Vorlagen oder Operatorüberladung und so weiter studiert. Jetzt gibt es eine einfache Möglichkeit zur Überlastung class My { public: int get(int); …
80 c++  overloading 

9
c ++ deque vs queue vs stack
Warteschlange und Stapel sind weit verbreitete Strukturen. In C ++ können Sie die Warteschlange jedoch auf zwei Arten ausführen: #include &lt;queue&gt; #include &lt;deque&gt; Aber für Stack kann man das nur so machen #include &lt;stack&gt; Meine Frage ist, was ist der Unterschied zwischen Warteschlange und Warteschlange, warum zwei Strukturen vorgeschlagen? Für …
80 c++  containers 

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.