Questions marquées «c++20»

C ++ 20 est la cible de la version de C ++ après C ++ 17. Cette balise doit être utilisée (avec la balise C ++) pour les questions sur les fonctionnalités C ++ en bonne voie pour C ++ 20.




5
Pourquoi exige-t-on des exigences?
L'un des angles des concepts C ++ 20 est qu'il existe certaines situations dans lesquelles vous devez écrire requires requires. Par exemple, cet exemple de [expr.prim.req] / 3 : Une expression require peut également être utilisée dans une clause requires ([temp]) comme moyen d'écrire des contraintes ad hoc sur des …
161 c++  c++-concepts  c++20 


3
Que sont les coroutines en C ++ 20?
Que sont les coroutines dans c ++ 20? En quoi il est différent de "Parallelism2" ou / et "Concurrency2" (regardez l'image ci-dessous)? L'image ci-dessous provient de l'ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
Pourquoi std :: ssize () est-il introduit dans C ++ 20?
C ++ 20 a introduit lestd::ssize() fonction gratuite comme ci-dessous: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Une implémentation possible semble utiliser static_cast, pour convertir la valeur de retour de la size()fonction membre de cl ass C en son équivalent signé. Depuis le size() fonction membre …
99 c++  stl  unsigned  signed  c++20 


3
L'opérateur d'égalité n'est pas défini pour une implémentation d'opérateur de vaisseau spatial personnalisé en C ++ 20
Je rencontre un comportement étrange avec le nouvel opérateur de vaisseau spatial <=>en C ++ 20. J'utilise le compilateur Visual Studio 2019 avec /std:c++latest. Ce code se compile très bien, comme prévu: #include <compare> struct X { int Dummy = 0; auto operator<=>(const X&) const = default; // Default implementation …

2
Pourquoi operator! = Est-il supprimé en C ++ 20 pour de nombreux types de bibliothèques standard?
Selon cppreference , std::type_info::operator!=est supprimé avec C ++ 20, cependant, std::type_info::operator==reste apparemment. Quel est le raisonnement derrière? Je pourrais être d'accord pour comparer l'inégalité comme étant dénuée de sens, mais alors comparer pour l'égalité serait tout aussi insignifiant, non? De même, operator!=de nombreux autres types de bibliothèques standard, y compris …


2
Initialiseurs désignés en C ++ 20
J'ai une question sur l'une des fonctionnalités c ++ 20, les initialiseurs désignés (plus d'informations sur cette fonctionnalité ici ) #include <iostream> constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee : Person { unsigned salary{DEFAULT_SALARY}; }; int main() { std::cout << std::boolalpha …

3
quel est le cas d'utilisation pour explicite (bool)
C ++ 20 a introduit explicit (bool) qui sélectionne conditionnellement au moment de la compilation si un constructeur est rendu explicite ou non. Voici un exemple que j'ai trouvé ici . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template <typename T> explicit(!std::is_integral_v<T>) foo(T) {} …
24 c++  c++20  explicit 


3
Concepts C ++ 20: Quelle spécialisation de modèle est choisie lorsque l'argument de modèle se qualifie pour plusieurs concepts?
Donné : #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { wrapper<int> …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.