)
-#
-# Many compilers get this wrong (see Section 14.7.3.1, number (4)):
-#
-# template <int dim> struct T {
-# static const int i;
-# };
-#
-# template <> const int T<1>::i;
-# template <> const int T<1>::i = 1;
-#
-# First, by Section 14.7.3.14 of the standard, the first template<>
-# line must necessarily be the _declaration_ of a specialization,
-# and the second is then its definition. There is therefore no
-# reason to report a doubly defined variable (Intel ICC 6.0), or
-# to choke on these lines at all (Sun Forte)
-#
-# - Wolfgang Bangerth, Matthias Maier, rewritten 2012
-#
-CHECK_CXX_COMPILER_BUG(
- "
- template <int dim> struct T
- {
- static const int i;
- };
- template <> const int T<1>::i;
- template <> const int T<1>::i = 1;
- int main() {return 0;}
- "
- DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG
- )
-
#
# Some older versions of gcc compile this, despite the 'explicit'
#cmakedefine DEAL_II_TEMPL_SPEC_FRIEND_BUG
#cmakedefine DEAL_II_MEMBER_ARRAY_SPECIALIZATION_BUG
-#cmakedefine DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG
#cmakedefine DEAL_II_CONST_MEMBER_DEDUCTION_BUG
#cmakedefine DEAL_II_BOOST_BIND_COMPILER_BUG
#cmakedefine DEAL_II_BIND_NO_CONST_OP_PARENTHESES
#ifndef DOXYGEN
-// declaration of explicit specializations of member variables, if the
-// compiler allows us to do that (the standard says we must)
-#ifndef DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG
+// declaration of explicit specializations of member variables
template <>
const double *const FE_DGP<1>::Matrices::projection_matrices[][GeometryInfo<1>::max_children_per_cell];
template <>
const unsigned int FE_DGP<2,3>::Matrices::n_projection_matrices;
-#endif
-
#endif // DOXYGEN
DEAL_II_NAMESPACE_CLOSE
#ifndef DOXYGEN
-// declaration of explicit specializations of member variables, if the
-// compiler allows us to do that (the standard says we must)
-#ifndef DEAL_II_MEMBER_VAR_SPECIALIZATION_BUG
+// declaration of explicit specializations of member variables
template <>
const double *const FE_DGPNonparametric<1,1>::Matrices::embedding[][GeometryInfo<1>::max_children_per_cell];
template <>
const unsigned int FE_DGPNonparametric<3,3>::Matrices::n_projection_matrices;
-#endif
#endif // DOXYGEN