error: no matching function for call to ‘pet(lizard)’
Function main
File ../../src/gcc/testsuite/g++.dg/concepts/nested-diagnostics-1.C
Line 26
Column 6
26 | | pet(lizard{}); // { dg-error "no matching function for call to 'pet\\\(lizard\\\)'" } |
| | ~~~^~~~~~~~~~ |
-
-
candidate 1: ‘template<class auto:1> requires pettable<auto:1> void pet(auto:1)’
Line 21
Column 6
21 | | void pet(pettable auto t); |
| | ^~~ |
-
template argument deduction/substitution failed:
-
constraints not satisfied
-
no operand of the disjunction is satisfied
Function pet
Line 19
Column 38
19 | | concept pettable = has_member_pet<T> or has_default_pet<T>; |
| | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ |
-
the operand ‘has_member_pet<T>’ is unsatisfied because
Line 19
Column 20
19 | | concept pettable = has_member_pet<T> or has_default_pet<T>; |
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
-
the required expression ‘t.pet()’ is invalid, because
Line 13
Column 47
13 | | concept has_member_pet = requires(T t) { t.pet(); }; |
| | ~~~~~^~ |
-
‘struct lizard’ has no member named ‘pet’
Line 13
Column 44
13 | | concept has_member_pet = requires(T t) { t.pet(); }; |
| | ~~^~~ |
-
the operand ‘has_default_pet<T>’ is unsatisfied because
Line 19
Column 41
19 | | concept pettable = has_member_pet<T> or has_default_pet<T>; |
| | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ |
-
‘is_pettable’ is not a member of ‘lizard’
Line 16
Column 30
16 | | concept has_default_pet = T::is_pettable; |
| | ^~~~~~~~~~~ |
-
candidate 2: ‘void pet(dog)’
Function main
Line 9
Column 6
-
no known conversion for argument 1 from ‘lizard’ to ‘dog’
Line 9
Column 10
-
candidate 3: ‘void pet(cat)’
Line 10
Column 6
-
no known conversion for argument 1 from ‘lizard’ to ‘cat’
Line 10
Column 10