diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp1y/auto-fn32.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/auto-fn32.C | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn32.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn32.C new file mode 100644 index 00000000000..0a5dafce858 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn32.C @@ -0,0 +1,33 @@ +// { dg-do compile { target c++14 } } + +template<class,class> struct same_type; +template<class T> struct same_type<T,T> {}; + +struct A +{ + static int b; + int c; + + template <int> + decltype(auto) f() { return A::c; } + + template <int> + decltype(auto) g() { return (A::c); } +}; + +A a; + +template <int> +decltype(auto) f() { return A::b; } + +template <int> +decltype(auto) g() { return (A::b); } + +int main() +{ + same_type<decltype(f<0>()), int>(); + same_type<decltype(g<0>()), int&>(); + + same_type<decltype(a.f<0>()), int>(); + same_type<decltype(a.g<0>()), int&>(); +} |