Pytania otagowane jako c++17

C ++ 17 to nazwa standardu C ++ zatwierdzonego w 2017 roku. Opiera się on na poprzednim standardzie C ++ 14, ulepszając podstawowy język i standardową bibliotekę oraz dodając kilka nowych funkcji językowych.





3
Jak mogę stworzyć sposób kartezjańskiego produktu list typów w C ++?
Wyjaśniające. Zasadniczo powiedz, że mam takie listy typów: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Mogą to być różne listy typów. Jak uzyskać listę typową produktu kartezjańskiego? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, double>, type_list<somestructA, somestructB, short> >; …

3
Czy separator shared_ptr jest przechowywany w pamięci przydzielonej przez niestandardowy program przydzielający?
Powiedzmy, że mam shared_ptrniestandardowy alokator i niestandardowy usuwacz. Nie mogę znaleźć w standardzie niczego, co mówi o tym, gdzie powinien być przechowywany usuwacz: nie mówi, że niestandardowy alokator zostanie użyty do pamięci usuwacza, i nie mówi, że nie będzie. Czy jest to nieokreślone, czy coś mi brakuje?

4
Niejawna konwersja niedozwolona po powrocie
#include <optional> bool f() { std::optional<int> opt; return opt; } Nie kompiluje: 'return': cannot convert from 'std::optional<int>' to 'bool' Odniesienie do konsultacji Chciałbym znaleźć wyjaśnienie, ale przeczytałem je tak, jak powinno być dobrze. Konwersje niejawne są wykonywane za każdym razem, gdy wyrażenie pewnego typu T1 jest używane w kontekście, który …

3
Podziel dany typ std :: variant według podanych kryteriów
Jak według danego typu wariantu using V = std::variant<bool, char, std::string, int, float, double, std::vector<int>>; zadeklaruj dwa typy wariantów using V1 = std::variant<bool, char, int, float, double>; using V2 = std::variant<std::string, std::vector<int>>; gdzie V1obejmuje wszystkie typy arytmetyczne z Vi V2obejmuje wszystkie typy arytmetyczne z V? V może być parametrem klasy …
20 c++  c++17  std-variant 


4
Czy można używać std :: transform z std :: back_inserter?
Cppreference ma ten przykładowy kod dla std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Ale mówi również: std::transformnie gwarantuje zastosowania unary_oplub binary_op. Aby zastosować funkcję do sekwencji w kolejności lub zastosować funkcję, która modyfikuje elementy sekwencji, użyj std::for_each. Ma to prawdopodobnie umożliwić równoległe …


4
Ciągłe wyliczanie C ++ 11
Czy istnieje sposób sprawdzenia w C ++ 11, czy wyliczenie jest ciągłe ? W pełni uzasadnione jest podawanie wartości wyliczeniowych, które nie są. Czy w C ++ 14, C ++ 17 jest jakaś cecha typu, a może C ++ 20, aby sprawdzić, czy wyliczanie jest ciągłe? Należy tego użyć w …
17 c++  c++11  c++14  c++17  c++20 

1
Jakieś gotcha zastępujące globalną const char [] constexpr string_view?
Nasz zespół pracuje z ponad 10-letnią bazą kodu C ++, a ostatnio przeszedł na kompilator C ++ 17. Szukamy więc sposobów modernizacji naszego kodu. Podczas konferencji na YouTube usłyszałem sugestię zastąpienia const char*globalnych ciągów constexpr string_view. Ponieważ const char*w naszym kodzie mamy całkiem sporo takich globalnych stałych ciągów, chcę zapytać, …

1
typ zwracany std :: pair <auto, auto>
Grałem około z autow std::pair. W poniższym kodzie funkcja fpowinna zwracać std::pairtypy zależne od parametru szablonu. Przykład roboczy: PRZYKŁAD 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, 2.0}; // pair of …

1
Jak kompilatory c ++ znajdują zmienną zewnętrzną?
Kompiluję ten program przez g ++ i clang ++. Jest różnica: g ++ drukuje 1, ale clang ++ drukuje 2. Wygląda na to, że g ++: zmienna zewnętrzna jest zdefiniowana w najkrótszym zakresie. clang ++: zmienna zewnętrzna jest zdefiniowana w najkrótszym globalnym zakresie. Czy specyfikacja C ++ ma jakieś specyfikacje …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.