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.

2
So übergeben Sie einen Verweis auf ein Template-Typnamen-Argument
Gibt es eine Möglichkeit, eine Referenz als Argument an ein Argument für den Vorlagentypnamen zu übergeben? Ich meine dies, anstatt beispielsweise ein int zu übergeben, um einen Verweis auf ein int zu übergeben. template <typename T> struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { …
16 c++  templates 

2
Speichert std :: set Objekte zusammenhängend im Speicher?
Gefällt es std::set, Objekte im zusammenhängenden Speicher zu speichern std::vector? Ich konnte dies nicht im Web finden, cppreference erwähnt keine Details zur Speicherzuweisung. Aber ich kann nicht verstehen, warum es kein zusammenhängendes Gedächtnis verwenden konnte, daher meine Frage.
16 c++  set  stdset 

1
std :: pair <auto, auto> Rückgabetyp
Ich habe mit autoin herumgespielt std::pair. Im folgenden Code soll die Funktion feinen std::pairTyp zurückgeben, der von einem Vorlagenparameter abhängt. Ein Arbeitsbeispiel: BEISPIEL 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return std::pair{1.0, …

1
Kann sich sizeof (enum) von sizeof (std :: zugrunde liegender_Typ <Enum> :: type) unterscheiden?
Kürzlich kam in einer Codeüberprüfung, die im folgenden Beispiel: enum class A : uint8_t { VAL1, VAL2 }; ... std::vector&lt;A&gt; vOfA; // Assume this is sized and full of some stuff. std::memcpy(wire_buffer, vOfA.data(), vOfA.size() * sizeof(A)); Wir sollten sizeof(std::underlying_type&lt;A&gt;::type)anstelle von verwenden sizeof(A). Ist es möglich, dass sich diese jemals unterscheiden …

3
Variadische Vorlagen: Entfalten Sie Argumente in Gruppen
Ich habe eine Funktion, die zwei Argumente akzeptiert: template &lt;typename T1, typename T2&gt; void foo(T1 arg1, T2 arg2) { std::cout &lt;&lt; arg1 &lt;&lt; " + " &lt;&lt; arg2 &lt;&lt; '\n'; } Und eine Variante, die ihre Argumente paarweise weiterleiten sollte: template &lt;typename... Args&gt; void bar(Args&amp;&amp;... args) { static_assert(sizeof...(Args) % 2 …


3
Warum wird der Destruktor im Operator delete nicht aufgerufen?
Ich habe versucht, ::deleteeine Klasse in der davon zu fordern operator delete. Aber der Destruktor wird nicht aufgerufen. Ich habe eine Klasse definiert, MyClassderen operator deleteüberladen wurde. Das Globale operator deleteist ebenfalls überlastet. Die Überladung operator deletevon MyClassruft die überladene globale auf operator delete. class MyClass { public: MyClass() { …


9
Catalina C ++: Die Verwendung von <cmath> -Headern führt zu einem Fehler: Kein Mitglied mit dem Namen 'signbit' im globalen Namespace
Nach dem Upgrade von Mojave auf Catalina, Setup: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk in der Umgebung. Ich kann kein Programm kompilieren, das den &lt;cmath&gt;Header verwendet. Ich habe versucht, CFLAGS, CCFLAGS, CXXFLAGS so zu ändern, dass sie auf den MacOSSDK-Speicherort verweisen, der nichts ändert Scanning dependencies of target OgreMain /Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build [ 0%] …


5
So erstellen Sie eine Permutation in c ++ mit STL für eine Anzahl von Stellen, die unter der Gesamtlänge liegen
Ich habe eine c++ vectormit std::pair&lt;unsigned long, unsigned long&gt;Gegenständen. Ich versuche, Permutationen der Objekte des Vektors mit zu erzeugen std::next_permutation(). Ich möchte jedoch, dass die Permutationen eine bestimmte Größe haben, ähnlich der permutationsFunktion in Python, bei der die Größe der erwarteten zurückgegebenen Permutation angegeben wird. Grundsätzlich c++entspricht das Äquivalent von …


4
Ressourcen aus den Schlüsseln von std :: map stehlen erlaubt?
Ist es in C ++ in Ordnung, Ressourcen von einer Karte zu stehlen, die ich danach nicht mehr benötige? Genauer gesagt, ich habe einen std::mapmit std::stringSchlüsseln und möchte einen Vektor daraus konstruieren, indem ich die Ressourcen der maps-Schlüssel mit stehle std::move. Beachten Sie, dass ein solcher Schreibzugriff auf die Schlüssel …

1
Wie finden C ++ - Compiler eine externe Variable?
Ich kompiliere dieses Programm mit g ++ und clang ++. Es gibt einen Unterschied: g ++ druckt 1, aber clang ++ druckt 2. Es scheint, dass g ++: die externe Variable im kürzesten Bereich definiert ist. clang ++: Die externe Variable wird im kürzesten globalen Bereich definiert. Hat die C …

5
Quelldateizeilen mit Makros zählen?
Ist es mit dem C / C ++ - Präprozessor möglich, Zeilen innerhalb einer Quelldatei entweder in ein Makro oder in einen zur Kompilierungszeit verfügbaren Wert zu zählen? Zum Beispiel kann ich ersetzen MAGIC1, MAGIC2und MAGIC3in den folgenden, und den Wert 4 irgendwie erhält bei der Verwendung MAGIC3? MAGIC1 // …

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.