* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / variadic-tuple2.C
blob43c00e91d564b1231a08a4ca0427608d287bc082
1 // PR c++/67164
2 // { dg-do compile { target c++11 } }
4 #include <type_traits>
6 namespace detail {
7     template <bool ...b>
8     struct fast_and
9         : std::is_same<fast_and<b...>, fast_and<(b, true)...>>
10     { };
13 template <typename ...Xn>
14 struct tuple {
15     tuple() { }
17     template <typename ...Yn, typename = typename std::enable_if<
18         detail::fast_and<std::is_constructible<Xn, Yn&&>::value...>::value
19     >::type>
20     tuple(Yn&& ...yn) { }
22     template <typename ...Yn, typename = typename std::enable_if<
23         detail::fast_and<std::is_constructible<Xn, Yn const&>::value...>::value
24     >::type>
25     tuple(tuple<Yn...> const& other) { }
28 tuple<tuple<>> t{};
29 tuple<tuple<>> copy = t;