aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/cpp0x/variadic-ex7.C
blob: c1bf837a78a51dd488b047c734b52045183d8cf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
// { dg-do compile { target c++11 } }
template<typename...> struct Tuple { };
template<typename... Types>              char& g(Tuple<Types...>);       // #1
template<typename T1, typename... Types> short& g(Tuple<T1, Types...>);   // #2
template<typename T1, typename... Types> int& g(Tuple<T1, Types&...>);  // #3

void f() {
  //  char& x1 = g(Tuple<>());             // calls #1
  short& y1 = g(Tuple<int, float>());  // calls #2
  //  int& z1 = g(Tuple<int, float&>());   // calls #3
  //  int& z2 = g(Tuple<int>());           // calls #3
  //  int& z3 = g(Tuple<int>());           // calls #3
}