* decl.c (make_typename_type): s/parameters/arguments/.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / variadic160.C
blob20fcd5b4fe7c21ce83367d2aea547b83e666e1a3
1 // PR c++/61539
2 // { dg-do compile { target c++11 } }
4 template <typename _CharT> class A;
5 template <typename> class B;
6 template <class charT> class C;
7 template <> class C<char>
9   virtual void xparse (int &, const B<A<char> > &) const;
11 template <class T, class charT = char> class G : C<charT>
13 public:
14   G (void *) {}
15   void default_value (const T &);
16   void xparse (int &, const B<A<charT> > &) const;
18 template <class T, class charT>
19 void validate (int &, const B<A<charT> > &, T *, int);
20 template <class T, class charT>
21 void G<T, charT>::xparse (int &p1, const B<A<charT> > &p2) const
23   validate (p1, p2, (T *)0, 0);
25 template <class T> G<T> *value (T *) { return new G<T>(0); }
26 namespace Eigen
28 template <typename T> struct D;
29 template <typename, int, int, int = 0, int = 0, int = 0 > class F;
30 template <typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows,
31           int _MaxCols>
32 struct D<F<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
34   typedef _Scalar Scalar;
36 template <typename, int, int, int, int, int _MaxCols> class F
38 public:
39   typedef typename Eigen::D<F>::Scalar Scalar;
40   F (const Scalar &, const Scalar &, const Scalar &);
42 template <class... T>
43 void validate (int &, const B<A<char> > &, Eigen::F<T...> *);
45 int main (int, char *[])
47   Eigen::F<double, 3, 1> a (0, 0, 0);
48   value (&a)->default_value (Eigen::F<double, 3, 1>(0, 0, 0));