// 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" } | |
} |