diff --git a/doc/refinement/refinement.tex b/doc/refinement/refinement.tex index a45f4a158f0b4b1b45535c81a0529d29f9e6e163..9b83acd34fdc3982baa60a8e7c2de5366ad9165d 100644 --- a/doc/refinement/refinement.tex +++ b/doc/refinement/refinement.tex @@ -143,11 +143,11 @@ calculation with the same precision as the grid itself. template<NewGeometryType::BasicType geometryType, class CoordType, NewGeometryType::BasicType coerceTo, - int dimension> + int dimension_> class Refinement { public: - enum { dimension }; + constexpr static int dimension = dimension_; template<int codimension> struct Codim { diff --git a/dune/geometry/axisalignedcubegeometry.hh b/dune/geometry/axisalignedcubegeometry.hh index 6758e85c2c640152aa07fb9f5e37b55ee639000a..d22d053b931e327a645cff2d56aba3868690111c 100644 --- a/dune/geometry/axisalignedcubegeometry.hh +++ b/dune/geometry/axisalignedcubegeometry.hh @@ -51,10 +51,10 @@ namespace Dune { public: /** \brief Dimension of the cube element */ - enum {mydimension = dim}; + constexpr static int mydimension = dim; /** \brief Dimension of the world space that the cube element is embedded in*/ - enum {coorddimension = coorddim}; + constexpr static int coorddimension = coorddim; /** \brief Type used for single coordinate coefficients */ typedef CoordType ctype; diff --git a/dune/geometry/quadraturerules.hh b/dune/geometry/quadraturerules.hh index b329ecf1b27cb32f9a815d290acab30dd272035b..d1d7b1d96546c3f82f3812cb7b688171165231d1 100644 --- a/dune/geometry/quadraturerules.hh +++ b/dune/geometry/quadraturerules.hh @@ -42,7 +42,7 @@ namespace Dune { class QuadraturePoint { public: /** \brief Dimension of the integration domain */ - enum { dimension = dim }; + constexpr static int dimension = dim; /** \brief Number type used for coordinates and quadrature weights */ typedef ct Field; @@ -166,7 +166,7 @@ namespace Dune { QuadratureRule(GeometryType t, int order) : geometry_type(t), delivered_order(order) {} public: /** \brief The space dimension */ - enum { d=dim }; + constexpr static int d = dim; /** \brief The type used for coordinates */ typedef ct CoordType; @@ -337,7 +337,7 @@ namespace Dune { template<typename ctype> class QuadratureRuleFactory<ctype, 0> { private: - enum { dim = 0 }; + constexpr static int dim = 0; friend class QuadratureRules<ctype, dim>; static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum) { @@ -360,7 +360,7 @@ namespace Dune { template<typename ctype> class QuadratureRuleFactory<ctype, 1> { private: - enum { dim = 1 }; + constexpr static int dim = 1; friend class QuadratureRules<ctype, dim>; static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum qt) { @@ -417,7 +417,7 @@ namespace Dune { template<typename ctype> class QuadratureRuleFactory<ctype, 2> { private: - enum { dim = 2 }; + constexpr static int dim = 2; friend class QuadratureRules<ctype, dim>; static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum qt) { @@ -443,7 +443,7 @@ namespace Dune { template<typename ctype> class QuadratureRuleFactory<ctype, 3> { private: - enum { dim = 3 }; + constexpr static int dim = 3; friend class QuadratureRules<ctype, dim>; static unsigned maxOrder(const GeometryType &t, QuadratureType::Enum qt) { diff --git a/dune/geometry/quadraturerules/jacobiNquadrature.hh b/dune/geometry/quadraturerules/jacobiNquadrature.hh index bf3847e2b85f1ee5a0102d844b43064169ea8461..0db3697a071843265d17408e5399cf46d85ea72d 100644 --- a/dune/geometry/quadraturerules/jacobiNquadrature.hh +++ b/dune/geometry/quadraturerules/jacobiNquadrature.hh @@ -35,7 +35,7 @@ namespace Dune { { public: // compile time parameters - enum { dim=1 }; + constexpr static int dim = 1; private: diff --git a/dune/geometry/quadraturerules/pointquadrature.hh b/dune/geometry/quadraturerules/pointquadrature.hh index 1956320f4f308b4a6f1094b89eff09bc47970cfc..1f02c89bdf4397098ebed11c46f87a8203c884d4 100644 --- a/dune/geometry/quadraturerules/pointquadrature.hh +++ b/dune/geometry/quadraturerules/pointquadrature.hh @@ -16,7 +16,7 @@ namespace Dune { public QuadratureRule<ct,0> { // compile time parameters - enum { dim=0 }; + constexpr static int dim = 0; friend class QuadratureRuleFactory<ct,dim>; diff --git a/dune/geometry/quadraturerules/prismquadrature.hh b/dune/geometry/quadraturerules/prismquadrature.hh index 9a602fb8ab579f09e0fa954d1dfe3bfdb962a2a8..86a89aeb4636d045c1cef36c9268bcbe00a0c0f2 100644 --- a/dune/geometry/quadraturerules/prismquadrature.hh +++ b/dune/geometry/quadraturerules/prismquadrature.hh @@ -28,7 +28,7 @@ namespace Dune { { public: /** \brief The highest quadrature order available */ - enum { highest_order = 2 }; + constexpr static int highest_order = 2; private: friend class QuadratureRuleFactory<ct,3>; @@ -59,8 +59,8 @@ namespace Dune { class PrismQuadraturePoints<3> { public: - enum { MAXP=6}; - enum { highest_order=2 }; + constexpr static int MAXP = 6; + constexpr static int highest_order = 2; //! initialize quadrature points on the interval for all orders PrismQuadraturePoints () diff --git a/dune/geometry/quadraturerules/simplexquadrature.hh b/dune/geometry/quadraturerules/simplexquadrature.hh index 726d67745864821b8f8e1ee5fab4c8c31dca658c..71431f92544c0096b122c83fde185e4ce220ae64 100644 --- a/dune/geometry/quadraturerules/simplexquadrature.hh +++ b/dune/geometry/quadraturerules/simplexquadrature.hh @@ -28,7 +28,7 @@ namespace Dune { { public: /** \brief The highest quadrature order available */ - enum { highest_order = 12 }; + constexpr static int highest_order = 12; private: friend class QuadratureRuleFactory<ct,2>; SimplexQuadratureRule (int p); @@ -43,7 +43,7 @@ namespace Dune { { public: /** \brief The highest quadrature order available */ - enum { highest_order = 5 }; + constexpr static int highest_order = 5; private: friend class QuadratureRuleFactory<ct,3>; SimplexQuadratureRule (int p); @@ -72,8 +72,8 @@ namespace Dune { class SimplexQuadraturePoints<2> { public: - enum { MAXP=33}; - enum { highest_order=12 }; + constexpr static int MAXP = 33; + constexpr static int highest_order = 12; //! initialize quadrature points on the interval for all orders SimplexQuadraturePoints () @@ -835,8 +835,8 @@ namespace Dune { class SimplexQuadraturePoints<3> { public: - enum { MAXP=15}; - enum { highest_order=5 }; + constexpr static int MAXP = 15; + constexpr static int highest_order = 5; //! initialize quadrature points on the interval for all orders SimplexQuadraturePoints() diff --git a/dune/geometry/quadraturerules/tensorproductquadrature.hh b/dune/geometry/quadraturerules/tensorproductquadrature.hh index 3365f431e3146bc833f308fd342d4774924da0a4..939db673e22ae5c46251d98d21a8b56634011c7f 100644 --- a/dune/geometry/quadraturerules/tensorproductquadrature.hh +++ b/dune/geometry/quadraturerules/tensorproductquadrature.hh @@ -37,7 +37,7 @@ namespace Dune TensorProductQuadratureRule (unsigned int topologyId, unsigned int order, QuadratureType::Enum qt) : Base( GeometryType(topologyId, dim), order ) { - enum { bitSize = sizeof(unsigned int)*8 }; + constexpr static int bitSize = sizeof(unsigned int)*8; std::bitset<bitSize> baseId(topologyId); bool isPrism = baseId[dim-1]; baseId.reset(dim-1); @@ -155,7 +155,7 @@ namespace Dune static unsigned maxOrder(unsigned int topologyId, QuadratureType::Enum qt) { - enum { bitSize = sizeof(unsigned int)*8 }; + constexpr static int bitSize = sizeof(unsigned int)*8; std::bitset<bitSize> baseId(topologyId); bool isPrism = baseId[dim-1]; baseId.reset(dim-1); diff --git a/dune/geometry/quadraturerules/writequad.mac b/dune/geometry/quadraturerules/writequad.mac index 139ca2a15b72f393a56dcd1c50752f71f84405dd..058693e77e2d2458686aea93d1564c51ec6206ec 100644 --- a/dune/geometry/quadraturerules/writequad.mac +++ b/dune/geometry/quadraturerules/writequad.mac @@ -59,7 +59,7 @@ namespace Dune { { public: /** \brief The highest quadrature order available */ - enum { highest_order=~d }; + constexpr static int highest_order = ~d; private: friend class QuadratureRuleFactory<ct,1>; diff --git a/dune/geometry/refinement.hh b/dune/geometry/refinement.hh index 04e06d86d022b9deb8115c2d61f58159ce015e57..48cca666f7fd7fac2fea1673fb4dccddea549e83 100644 --- a/dune/geometry/refinement.hh +++ b/dune/geometry/refinement.hh @@ -61,11 +61,11 @@ * * \code * template<unsigned topologyId, class CoordType, - * unsigned coerceToId, int dimension> + * unsigned coerceToId, int dimension_> * class StaticRefinement * { * public: - * enum { dimension }; + * constexpr static int dimension = dimension_; * * template<int codimension> * struct codim diff --git a/dune/geometry/refinement/hcube.cc b/dune/geometry/refinement/hcube.cc index 67b3d4c66555e96f8d1093e5ff088df392077d83..ccb7ea5b7f651914f40243d3647cd903796f0800 100644 --- a/dune/geometry/refinement/hcube.cc +++ b/dune/geometry/refinement/hcube.cc @@ -72,7 +72,8 @@ namespace Dune class RefinementImp { public: - enum { dimension = dimension_ /*!< Know your own dimension \hideinitializer */ }; + /** \brief Know your own dimension \hideinitializer */ + constexpr static int dimension = dimension_; //- Know yourself typedef RefinementImp<dimension, CoordType> Refinement; @@ -234,7 +235,7 @@ namespace Dune RefinementSubEntityIteratorSpecial<dimension, CoordType, 0>:: vertexIndices() const { - enum { nIndices = (1 << dimension) }; + constexpr static int nIndices = 1 << dimension; // cell index tuple std::array<unsigned int, dimension> e(asCommon().cellCoord()); diff --git a/dune/geometry/refinement/hcubetriangulation.cc b/dune/geometry/refinement/hcubetriangulation.cc index f82b1110c6b07131e5d161e223b9c507be17b665..6b6efd363221b0777d712136bb8df0a7cdf6e475 100644 --- a/dune/geometry/refinement/hcubetriangulation.cc +++ b/dune/geometry/refinement/hcubetriangulation.cc @@ -64,7 +64,7 @@ namespace Dune class RefinementImp { public: - enum { dimension = dimension_ }; + constexpr static int dimension = dimension_; typedef CoordType ctype; @@ -171,7 +171,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<dimension>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = factorial(int(dimension)) }; + constexpr static int nKuhnSimplices = factorial(int(dimension)); int nIntervals_; @@ -256,7 +256,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<0>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = factorial(dimension) }; + constexpr static int nKuhnSimplices = factorial(dimension); int nIntervals_; diff --git a/dune/geometry/refinement/prismtriangulation.cc b/dune/geometry/refinement/prismtriangulation.cc index b0e6dab919f84526952e2c127fcf0b53d75c4afe..14427cbd7b5eb87c0552c230f0d1281b788e3a13 100644 --- a/dune/geometry/refinement/prismtriangulation.cc +++ b/dune/geometry/refinement/prismtriangulation.cc @@ -64,7 +64,7 @@ namespace Dune class RefinementImp { public: - enum {dimension = dimension_}; + constexpr static int dimension = dimension_; typedef CoordType ctype; @@ -171,7 +171,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<dimension>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = 3 }; + constexpr static int nKuhnSimplices = 3; int nIntervals_; @@ -258,7 +258,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<0>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = 3}; + constexpr static int nKuhnSimplices = 3; int nIntervals_; diff --git a/dune/geometry/refinement/pyramidtriangulation.cc b/dune/geometry/refinement/pyramidtriangulation.cc index 138d4d4e7ea1f84702b0e61052751337e9e9c99d..9dccc5342fe4b29f8347594f88c1707875f901a3 100644 --- a/dune/geometry/refinement/pyramidtriangulation.cc +++ b/dune/geometry/refinement/pyramidtriangulation.cc @@ -65,7 +65,7 @@ namespace Dune class RefinementImp { public: - enum {dimension = dimension_}; + constexpr static int dimension = dimension_; typedef CoordType ctype; @@ -90,7 +90,7 @@ namespace Dune typedef Simplex::RefinementImp<dimension, CoordType> BackendRefinement; - enum { nKuhnSimplices = 2 }; + constexpr static int nKuhnSimplices = 2; }; template<int dimension, class CoordType> @@ -175,7 +175,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<dimension>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = 2 }; + constexpr static int nKuhnSimplices = 2; int nIntervals_; @@ -260,7 +260,7 @@ namespace Dune protected: typedef typename Refinement::BackendRefinement BackendRefinement; typedef typename BackendRefinement::template Codim<0>::SubEntityIterator BackendIterator; - enum { nKuhnSimplices = 2}; + constexpr static int nKuhnSimplices = 2; int nIntervals_; diff --git a/dune/geometry/refinement/simplex.cc b/dune/geometry/refinement/simplex.cc index a0472cb635e4459622bfd8c905f329bf72e8b1ae..a5589f6458ec79e31accaee98c6d3af11aad4957 100644 --- a/dune/geometry/refinement/simplex.cc +++ b/dune/geometry/refinement/simplex.cc @@ -430,7 +430,7 @@ namespace Dune { class RefinementImp { public: - enum { dimension = dimension_ }; + constexpr static int dimension = dimension_; typedef CoordType ctype; template<int codimension> @@ -632,7 +632,7 @@ namespace Dune { protected: typedef FieldVector<int, dimension> Vertex; - enum { nKuhnIntervals = Dune::factorial(dimension) }; + constexpr static int nKuhnIntervals = Dune::factorial(dimension); Vertex origin; int kuhnIndex;