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.

5
Dynamische Verknüpfung - Linux Vs. Windows
Wenn ich unter Windows C / C ++ - Code in einem DLL-Projekt in MSVC kompiliere, erhalte ich zwei Dateien: MyDll.dll MyDll.lib Soweit ich weiß, MyDll.libenthält es eine Art Zeigertabelle, die die Positionen der Funktionen in der DLL angibt. Bei Verwendung dieser DLL, beispielsweise in einer Exe-Datei, MyDll.libwird sie während …







2
Gültige Syntax zum Aufrufen des Pseudo-Destruktors für eine schwebende Konstante
Betrachten Sie das folgende Demonstrationsprogramm. #include <iostream> int main() { typedef float T; 0.f.T::~T(); } Dieses Programm wird zusammengestellt von Microsoft Visual Studio Community 2019. Aber clangund gccgeben Sie einen Fehler wie diesen aus prog.cc:7:5: error: unable to find numeric literal operator 'operator""f.T' 7 | 0.f.T::~T(); | ^~~~~ Wenn der …


2
Konstruieren Sie Standardausnahmen mit Nullzeigerargumenten und unmöglichen Nachbedingungen
Betrachten Sie das folgende Programm: #include<stdexcept> #include<iostream> int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&) { std::cout << "Caught!\n"; } } GCC und Clang mit libstdc ++ rufen std::terminatedas Programm mit der Nachricht auf und brechen es ab terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct …

2
Kann ich eine temporäre Leitung an eine Bereichsoperation zurückgeben?
Angenommen, ich habe eine generate_my_rangeKlasse, die a modelliert range(insbesondere ist regular). Dann ist der folgende Code korrekt: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; Wird my_custom_rng_gen(some_param)vom (ersten) Rohrbetreiber als Wert genommen, oder habe …
9 c++  range-v3 

2
Welche Namensräume gibt es und wie lauten die Regeln?
Hinweis: Bei dieser Frage geht es name spacenicht um namespace. Der C ++ - Standard enthält einige Verweise auf name space, aber ich sehe die Definition dafür nicht. Die Standards besagen, dass sich Beschriftungen und Makros in unterschiedlichen Namensräumen befinden. Alle anderen Verweise auf name spacebefinden sich im Abschnitt zur …
9 c++  namespaces 

1
Wie kann man die Anzahl der Elemente in std :: array <T, N> ermitteln, ohne seine Instanz erstellen zu müssen?
Es gibt std::array&lt;T, N&gt;::size(), aber es ist nicht statisch, daher ist eine Instanz von erforderlich std::array. Gibt es eine Möglichkeit, den zurückgegebenen Wert (der der Nvon ist std::array&lt;T, N&gt;) abzurufen, ohne eine Instanz des Arrays erstellen zu müssen? Für ein normales Array hätte ich es verwenden können sizeof, aber ich …
9 c++  arrays  c++11  sizeof 

1
Ist es UB, eine Elementfunktionskoroutine eines Objekts wieder aufzunehmen, dessen Lebensdauer abgelaufen ist?
Diese Frage ergibt sich aus diesem Kommentar: Erklärung der Lambda-Lebensdauer für C ++ 20-Coroutinen zu diesem Beispiel: auto foo() -&gt; folly::coro::Task&lt;int&gt; { auto task = []() -&gt; folly::coro::Task&lt;int&gt; { co_return 1; }(); return task; } Die Frage ist also, ob die Ausführung der von zurückgegebenen Coroutine zu fooUB führen würde. …

1
Nicht spezifizierte implizite Objekterstellung
Da P0593 die implizite Erstellung von Objekten für die Objektmanipulation auf niedriger Ebene akzeptiert wurde, können Objekte jetzt implizit in C ++ 20 erstellt werden. Insbesondere ermöglicht der durch den Vorschlag eingeführte Wortlaut, dass bestimmte Vorgänge (z. B. std::malloc) automatisch die Lebensdauer von Objekten bestimmter Typen, sogenannte implizite Lebensdauer-Typen , …

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.