Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/20090706-1.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
/* { dg-do compile } */ namespace std __attribute__ ((__visibility__ ("default"))) { template<typename _Tp> class new_allocator { }; template<typename _Tp> class allocator: public new_allocator<_Tp> { }; template<typename _Tp, typename _Alloc> struct _Vector_base { }; template<typename _Tp, typename _Alloc = std::allocator<_Tp> > class vector : protected _Vector_base<_Tp, _Alloc> { }; }; template<int Dim> class Vector { }; enum CenteringType { VertexType, EdgeType, FaceType, CellType }; enum ContinuityType { XDim = 1, YDim = XDim << 1, ZDim = YDim << 1 }; template <int Dim> class Centering { public: typedef Vector<Dim> Position; typedef std::vector<Position> Positions; Centering(const Positions &positions); Positions positions_m; }; template <int Dim> class CanonicalCentering { CanonicalCentering(); template <class T> static T combine(const T &op1, const T &op2); static Centering<Dim>*** centering_table_m; }; template <int Dim> CanonicalCentering<Dim>::CanonicalCentering() { typename Centering<Dim>::Positions positions[Dim][2]; enum { x = 0, y, z }; int cont = 0; if (Dim > 1) { centering_table_m[EdgeType][cont][YDim] = Centering<Dim>(positions[y][cont]); centering_table_m[EdgeType][cont][XDim|YDim] = Centering<Dim>(combine(positions[x][cont], positions[y][cont])); } if (Dim > 2) { centering_table_m[EdgeType][cont][ZDim] = Centering<Dim>(positions[z][cont]); centering_table_m[EdgeType][cont][XDim|ZDim] = Centering<Dim>(combine(positions[x][cont], positions[z][cont])); } } template class CanonicalCentering<2>;