| // PR c++/78337 | |
| // { dg-do compile { target c++14 } } | |
| struct X { | |
| static constexpr int foo (int b) { | |
| return b; | |
| } | |
| }; | |
| template<int> | |
| using Void = void; | |
| template<typename F,typename A> | |
| auto | |
| bar(F f, A a) -> decltype( ( f(a) , 0 ) ) // { dg-message "" } | |
| { return {}; } | |
| int main() { | |
| //constexpr | |
| int f = 3; | |
| (void)f; | |
| auto l = [](auto of_type_X)-> | |
| Void<(decltype(of_type_X)::foo(f), 0)> // { dg-error "variable" } | |
| {return;}; | |
| bar(l , X{}); // { dg-error "no match" } | |
| } |