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>
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); }
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,
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
39 typedef typename Eigen::D<F>::Scalar Scalar;
40 F (const Scalar &, const Scalar &, const Scalar &);
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));