// { dg-require-effective-target c++11 } | |
template <class,class> struct ST; | |
template <class T> struct ST<T,T> {}; | |
struct A | |
{ | |
int f() &; | |
char f() &&; | |
}; | |
template <class T> struct B | |
{ | |
int f() &; | |
char f() &&; | |
}; | |
int main() | |
{ | |
A a; | |
a.f(); | |
A().f(); | |
ST<decltype(a.f()), int>(); | |
ST<decltype(A().f()), char>(); | |
B<int> b; | |
b.f(); | |
B<int>().f(); | |
ST<decltype(b.f()), int>(); | |
ST<decltype(B<int>().f()), char>(); | |
} |