brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 33500ba Raw
41 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++20  %s2 3template<class T>4concept C = true;5 6template<class T>7concept D = C<T> && true;8 9template<typename T>10struct a {11    void no_candidate() requires(false) {}12    // expected-note@-1 {{candidate function not viable: constraints not satisfied}} \13    // expected-note@-1 {{because 'false' evaluated to false}}14    void no_candidate() requires(false && false) {}15    // expected-note@-1 {{candidate function not viable: constraints not satisfied}} \16    // expected-note@-1 {{because 'false' evaluated to false}}17 18    void subsumes();19    void subsumes() requires C<T>;20    void subsumes() requires D<T> {};21 22    void ok() requires false;23    void ok() requires true {};24 25    void ok2() requires false;26    void ok2(){};27 28    void ambiguous() requires true;29    // expected-note@-1 {{candidate function}}30    void ambiguous() requires C<T>;31    // expected-note@-1 {{candidate function}}32};33template void a<int>::no_candidate();34// expected-error@-1 {{no viable candidate for explicit instantiation of 'no_candidate'}}35 36template void a<int>::ambiguous();37// expected-error@-1 {{partial ordering for explicit instantiation of 'ambiguous' is ambiguous}}38 39template void a<int>::ok();40template void a<int>::ok2();41