Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/variadic160.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR c++/61539 // { dg-do compile { target c++11 } } template <typename _CharT> class A; template <typename> class B; template <class charT> class C; template <> class C<char> { virtual void xparse (int &, const B<A<char> > &) const; }; template <class T, class charT = char> class G : C<charT> { public: G (void *) {} void default_value (const T &); void xparse (int &, const B<A<charT> > &) const; }; template <class T, class charT> void validate (int &, const B<A<charT> > &, T *, int); template <class T, class charT> void G<T, charT>::xparse (int &p1, const B<A<charT> > &p2) const { validate (p1, p2, (T *)0, 0); } template <class T> G<T> *value (T *) { return new G<T>(0); } namespace Eigen { template <typename T> struct D; template <typename, int, int, int = 0, int = 0, int = 0 > class F; template <typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols> struct D<F<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > { typedef _Scalar Scalar; }; template <typename, int, int, int, int, int _MaxCols> class F { public: typedef typename Eigen::D<F>::Scalar Scalar; F (const Scalar &, const Scalar &, const Scalar &); }; template <class... T> void validate (int &, const B<A<char> > &, Eigen::F<T...> *); } int main (int, char *[]) { Eigen::F<double, 3, 1> a (0, 0, 0); value (&a)->default_value (Eigen::F<double, 3, 1>(0, 0, 0)); }