PR c++/56973, DR 696 - capture constant variables only as needed.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp1y / auto-fn32.C
blob0a5dafce85874f9c518885d32bc51e9542256799
1 // { dg-do compile { target c++14 } }
3 template<class,class> struct same_type;
4 template<class T> struct same_type<T,T> {};
6 struct A
8   static int b;
9   int c;
11   template <int>
12   decltype(auto) f() { return A::c; }
14   template <int>
15   decltype(auto) g() { return (A::c); }
18 A a;
20 template <int>
21 decltype(auto) f() { return A::b; }
23 template <int>
24 decltype(auto) g() { return (A::b); }
26 int main()
28   same_type<decltype(f<0>()), int>();
29   same_type<decltype(g<0>()), int&>();
31   same_type<decltype(a.f<0>()), int>();
32   same_type<decltype(a.g<0>()), int&>();