Questions marquées «c++-concepts»

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
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> …

1
Est-ce que `égalité_comparable_avec` doit exiger` common_reference`?
Le conceptequality_­comparable_with<T, U> est destiné à déclarer que les objets de type Tet Upeuvent être comparés égaux les uns aux autres, et s'ils le sont, alors cela a la signification attendue. C'est très bien. Cependant, ce concept doit également common_reference_t<T&, U&>exister. L'impulsion principale pour common_referenceet sa fonctionnalité associée semble être …

1
Le contrôle Concept TS ignore le modificateur d'accès privé
Je veux écrire un concept indexable signifiant qu'une séquence a un début / fin qui renvoie RandomAccessIterator, ou operator [] est défini et renvoie une valeur de type non void. J'ai utilisé des idées de l'article de Stroustrup pour le concept Sequence et je l'ai complété avec: template <class T> …
10 c++  c++-concepts 

1
Les expressions require sont-elles autorisées à «capturer» les variables de la portée englobante?
Dans l'exemple suivant, les arguments de fonction sont utilisés pour tester avec une expression require si une expression les utilisant est bien formée. L'expression require ne prend aucun argument; il utilise directement les variables de la portée de la fonction: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t …
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.