// PR c++/49058 | |
// This error is not subject to SFINAE because it doesn't happen in the | |
// deduction context. | |
// { dg-do compile { target c++11 } } | |
// { dg-prune-output "note" } | |
template<typename T> T val(); | |
struct F1 | |
{ | |
void operator()(); | |
}; | |
template<typename F> | |
struct Bind | |
{ | |
template<typename R | |
= decltype( val<F>()( ) )> | |
R f(); | |
template<typename R | |
= decltype( val<const F>()( ) )> // { dg-error "no match" } | |
R f() const; | |
}; | |
int main() | |
{ | |
Bind<F1> b; | |
} |