// PR c++/52422 | |
// { dg-do compile { target c++11 } } | |
template<class T> | |
struct add_rval_ref | |
{ | |
typedef T&& type; | |
}; | |
template<> | |
struct add_rval_ref<void> | |
{ | |
typedef void type; | |
}; | |
template<class T> | |
typename add_rval_ref<T>::type create(); | |
template<class T, | |
class = decltype(create<T>()()) | |
> | |
auto f(int) -> char(&)[1]; | |
template<class> | |
auto f(...) -> char(&)[2]; | |
static_assert(sizeof(f<void>(0)) != 1, ""); |