OSDN Git Service

PR c++/37256
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / variadic-ex7.C
1 // { dg-options "-std=gnu++0x" }
2 template<typename...> struct Tuple { };
3 template<typename... Types>              char& g(Tuple<Types...>);       // #1
4 template<typename T1, typename... Types> short& g(Tuple<T1, Types...>);   // #2
5 template<typename T1, typename... Types> int& g(Tuple<T1, Types&...>);  // #3
6
7 void f() {
8   //  char& x1 = g(Tuple<>());             // calls #1
9   short& y1 = g(Tuple<int, float>());  // calls #2
10   //  int& z1 = g(Tuple<int, float&>());   // calls #3
11   //  int& z2 = g(Tuple<int>());           // calls #3
12   //  int& z3 = g(Tuple<int>());           // calls #3
13 }