c++20

enum to string in modern C++11 / C++14 / C++17 and future C++20

W przeciwieństwie do innych podobnych pytań, to pytanie dotyczy korzystania z nowych funkcji C++. 2008 c czy istnieje prost ... du C++ w czasie kompilacji za pomocą sztuczek meta-programowania opartych na funkcjach variadic template class i constexpr...

Co to jest operator <=> w C++?

Kiedy próbowałem dowiedzieć się o operatorach C++, natknąłem się na dziwny operator porównania na cppreference.com,* w tabel ... ten operator? * W międzyczasie cppreference.com zaktualizowano tę stronę i teraz zawiera informacje o operatorze <=>.

Dlaczego wymagamy wymaga wymaga?

Jednym z rogów koncepcji C++20 jest to, że istnieją pewne sytuacje, w których trzeba pisać requires requires. Na przykład ten ... requires (T x) { x + x; } T add(T a, T b) { return a + b; } (Uwaga: proszę nie odpowiadać, że gramatyka requires it)

Zachowanie C++20 łamanie istniejącego kodu operatorem równości?

Wpadłem na to podczas debugowania to pytanie . Przyciąłem go do samego użycia operatorów Boost : Compiler Explorer C++17 ... szkadza? Podejrzewam, że może to być spowodowane nową obsługą c++20, ale nie rozumiem Jak zmienia to zachowanie tego kodu.

Default template parameter & lambda in unevaluated context: bug or feature?

Rozważamy cel stworzenia dwóch różnych typów, przy użyciu dokładnie tej samej składni. Można to łatwo zrobić z lambda: {]} ... aga: mam nadzieję, że jest to funkcja, a nie błąd, ale tylko dlatego, że sprawia, że niektóre szalone pomysły można wdrożyć

Jak wykorzystać lokalizację źródła w zmiennej funkcji szablonu?

Funkcja C++20 std::source_location jest używana do przechwytywania informacji o kontekście, w którym wywoływana jest funkcja. ... różnymi szablonami, ale trudno mi dowiedzieć się, jak. Jak Mogę używać std::source_location z zmiennymi funkcjami szablonów?

Czy bezstopniowe C++20 to problem?

Z poniższego punktu widzenia wygląda na to, że coroutines w C++20 będą bezstopniowe. Https://en.cppreference.com/w/cpp/lang ... =KUhSjfSbINE CppCon 2016: James McNellis "Introduction to C++ Coroutines" Https://www.youtube.com/watch?v=ZTqHjjm86Bw

Jak napisać mój C++, aby być przygotowanym do modułów C++?

Istnieją już dwa Kompilatory obsługujące Moduły C++: Clang: http://clang.llvm.org/docs/Modules.html MS VS 2015: http: ... kompilatorze? Czy Można używać modułów i nadal utrzymywać kompatybilność ze starszymi kompilatorami, które go nie obsługują?

Czy C++20 nakazuje przechowywanie kodu źródłowego w plikach?

Trochę dziwne pytanie, jednak, jeśli dobrze pamiętam, kod źródłowy C++ nie wymaga systemu plików do przechowywania swoich pli ... dodaje teraz lokalizację źródła z file_name. Czy teraz oznacza to, że kod źródłowy powinien być zawsze przechowywany w pliku?

Czym są coroutines w C++20?

Co to są koroutiny w c++20 ? Czym różni się od "Paralelism2" lub / i "Concurrency2" (spójrz na poniższy obrazek)? Poniższy obrazek pochodzi z ISOCPP. Https://isocpp.org/files/img/wg21-timeline-2017-03.png

C++20 bit cast vs reinterpret cast

Zgodnie z ostatnim spotkaniem Komitetu ISO C++, Bit-cast zostanie wprowadzony w standardzie C++20. Wiem, że {[0] } nie nada ... cast, aby traktować obiekt jak reprezentację sekwencji bitowej i woleli dać tę funkcjonalność jako nową konstrukcję językową?

Po co szablon lambda wprowadzony w C++20 skoro C++14 ma już generyczną lambdę?

W C++14 wprowadzono ogólne lambdy, które umożliwiały pisanie: auto func = [](auto a, auto b){ return a + b; }; auto Foo ... działa tak samo jak funkcja szablonowa func. Dlaczego Komitet C++ zdecydował się dodać składnię szablonu dla generic lamda?

Czym różni się operator porównania trójstronnego od odejmowania?

Jest nowy operator porównania <=> W C++20. Jednak myślę, że w większości przypadków proste odejmowanie działa dobrze: ... urn *a <=> *b; // Version 3 return ((*a > *b) - (*a < *b)); } Mają ten sam efekt. Nie rozumiem różnicy.