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
C ++ - Dekltyp und Klammern - warum?
Das Thema wurde diskutiert vor , aber dies ist kein Duplikat. Wenn jemand nach dem Unterschied zwischen decltype(a)und fragt , lautet decltype((a))die übliche Antwort: - aist eine Variable, (a)ist ein Ausdruck. Ich finde diese Antwort unbefriedigend. Erstens aist auch ein Ausdruck. Die Optionen für einen primären Ausdruck umfassen unter anderem: …

4
Warum werden zwei using-Klauseln, die in denselben Typ aufgelöst werden, in gcc als mehrdeutig angesehen?
Ich habe zwei Basisklassen mit using-Klauseln class MultiCmdQueueCallback { using NetworkPacket = Networking::NetworkPacket; .... } class PlcMsgFactoryImplCallback { using NetworkPacket = Networking::NetworkPacket; .... } Ich erkläre dann eine Klasse class PlcNetwork : public RouterCallback, public PlcMsgFactoryImplCallback, public MultiCmdQueueCallback { private: void sendNetworkPacket(const NetworkPacket &pdu); } Der Compiler kennzeichnet dann einen …


6
Kann ein fehlendes #include das Programm zur Laufzeit unterbrechen?
Gibt es einen Fall, in dem ein Fehlen #includedie Software zur Laufzeit beschädigen würde, während der Build noch läuft? Mit anderen Worten, ist es möglich, dass #include "some/code.h" complexLogic(); cleverAlgorithms(); und complexLogic(); cleverAlgorithms(); würden beide erfolgreich bauen, sich aber unterschiedlich verhalten?
31 c++ 

4
Wie heißt das (…) in C und C ++?
Eine der Verwendungen von ...besteht darin, verschiedene Entitäten in C und C ++ zu bezeichnen. Was ist sein Name? Wird es auf diese Weise als Operator oder als etwas anderes klassifiziert? Weitere Details zu ...? Edit: Ich kenne den Zweck von .... Ich frage nach dem Namen und der Klassifizierung, …

6
Ist es sicher, zwei verschiedene Vektoren in C ++ mit der Methode std :: vector :: swap auszutauschen?
Angenommen, Sie haben den folgenden Code: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Stellen Sie sich vor, der Vektor ist noch std::stringkeine Klasse: std::vector<Widget> …
30 c++  c++11  vector  stdvector  swap 


2
Warum gibt `std :: string :: find ()` bei Fehlern den Enditerator nicht zurück?
Ich finde das Verhalten von std::string::findinkonsistent mit Standard-C ++ - Containern. Z.B std::map<int, int> myMap = {{1, 2}}; auto it = myMap.find(10); // it == myMap.end() Aber für eine Schnur, std::string myStr = "hello"; auto it = myStr.find('!'); // it == std::string::npos Warum sollte die fehlgeschlagene myStr.find('!')Rückkehr nicht myStr.end()statt std::string::npos? …

2
Warum ist std :: hash nicht garantiert deterministisch?
Im Folgenden verwenden wir N4140 (C ++ 14 Standard). Gemäß § 17.6.3.4 Hash-Anforderungen , Der zurückgegebene Wert hängt nur vom Argument k für die Dauer des Programms ab . [Hinweis: Somit ergeben alle Auswertungen des Ausdrucks h(k)mit demselben Wert für kdasselbe Ergebnis für eine bestimmte Ausführung des Programms . - …



2
Warum ist meine Klasse nicht standardmäßig konstruierbar?
Ich habe diese Klassen: #include <type_traits> template <typename T> class A { public: static_assert(std::is_default_constructible_v<T>); }; struct B { struct C { int i = 0; }; A<C> a_m; }; int main() { A<B::C> a; } Ist beim Kompilieren a_mnicht standardmäßig konstruierbar, aist es aber . Beim Wechsel Czu: struct C …
28 c++ 

1
Warum unterscheidet sich static_cast <unsigned> von negativen Zahlen in C ++, wenn die Zahl konstant ist oder nicht?
Was ist die C ++ Regeln, die Mittel gleich ist falsch ?. Gegeben: float f {-1.0}; bool equal = (static_cast&lt;unsigned&gt;(f) == static_cast&lt;unsigned&gt;(-1.0)); ZB https://godbolt.org/z/fcmx2P #include &lt;iostream&gt; int main() { float f {-1.0}; const float cf {-1.0}; std::cout &lt;&lt; std::hex; std::cout &lt;&lt; " f" &lt;&lt; "=" &lt;&lt; static_cast&lt;unsigned&gt;(f) &lt;&lt; '\n'; std::cout …
28 c++  casting 


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.