Questions marquées «c++20»

17
Énumération continue C ++ 11

Existe-t-il un moyen de vérifier en C ++ 11 si une énumération est continue ? Il est tout à fait valide de donner des valeurs d'énumération qui ne le sont pas. Existe-t-il peut-être une fonctionnalité comme un trait de type en C ++ 14, C ++ 17 ou peut-être C ++ 20 pour vérifier si l'énumération est...

14
std :: bit_cast avec std :: array

Dans son récent discours «Type punning en C ++ moderne», Timur Doumler a déclaré que std::bit_castcela ne peut pas être utilisé pour convertir un bit floaten un unsigned char[4]car les tableaux de style C ne peuvent pas être renvoyés d'une fonction. Nous devons utiliser std::memcpyou attendre C ++...

12
Définition hors classe C ++ 20 dans une classe modèle

Jusqu'à la norme C ++ 20 de C ++, lorsque nous voulions définir un opérateur hors classe qui utilise certains membres privés d'une classe de modèle, nous utilisions une construction similaire à ceci: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs,...

11
Changement de rupture en C ++ 20 ou régression dans clang-trunk / gcc-trunk lors de la surcharge de comparaison d'égalité avec une valeur de retour non booléenne?

Le code suivant compile correctement avec clang-trunk en mode c ++ 17 mais se casse en mode c ++ 2a (c ++ 20 à venir): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};}...

11
L'envergure peut-elle être constexpr?

Tous les constructeurs de std :: span sont déclarés constexpr, mais je n'arrive pas à faire fonctionner l'un d'eux dans un contexte constexpr. La suppression de la mise en commentaire de l'un des constexpr ci-dessous entraînera une erreur de compilation. #include <array> #include <span>...