1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// { dg-options "-std=gnu++0x" } template<typename T> struct wrap { }; template<typename... Args> int& f(const Args&...); template<typename... Args> float& f(const wrap<Args>&...); int& g(int x, float y, double z) { return f(x, y, z); } float& h(wrap<int> x, wrap<float> y, wrap<double> z) { return f(x, y, z); }