-D DEAL_II_CXX_FLAGS='-Werror' \
-D CMAKE_BUILD_TYPE=Debug \
-D DEAL_II_WITH_MPI=OFF \
- -D DEAL_II_WITH_CXX14=OFF \
-D DEAL_II_UNITY_BUILD=ON \
$WORKSPACE/
time ninja -j $NP
DEAL_II_WITH_COMPLEX_VALUES=1 \
DEAL_II_WITH_CUDA=1 \
DEAL_II_COMPILER_CUDA_AWARE=1 \
- DEAL_II_WITH_CXX14=1 \
- DEAL_II_WITH_CXX17=1 \
DEAL_II_WITH_GINKGO=1 \
DEAL_II_WITH_GMSH=1 \
DEAL_II_WITH_GSL=1 \
#cmakedefine DEAL_II_HAVE_GLIBC_STACKTRACE
#cmakedefine DEAL_II_HAVE_LIBSTDCXX_DEMANGLER
#cmakedefine __PRETTY_FUNCTION__ @__PRETTY_FUNCTION__@
-#cmakedefine DEAL_II_DEPRECATED @DEAL_II_DEPRECATED@
#cmakedefine DEAL_II_ALWAYS_INLINE @DEAL_II_ALWAYS_INLINE@
#cmakedefine DEAL_II_RESTRICT @DEAL_II_RESTRICT@
#cmakedefine DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
-#cmakedefine DEAL_II_CONSTEXPR @DEAL_II_CONSTEXPR@
/*
* A variable to tell if the compiler used in the current compilation process
#cmakedefine DEAL_II_HAVE_CXX17
-#cmakedefine DEAL_II_HAVE_CXX14_CONSTEXPR
#cmakedefine DEAL_II_HAVE_FP_EXCEPTIONS
#cmakedefine DEAL_II_HAVE_COMPLEX_OPERATOR_OVERLOADS
+#cmakedefine DEAL_II_CXX14_CONSTEXPR_BUG_OK
+
+#define DEAL_II_DEPRECATED [[deprecated]]
#cmakedefine DEAL_II_FALLTHROUGH @DEAL_II_FALLTHROUGH@
+#cmakedefine DEAL_II_CONSTEXPR @DEAL_II_CONSTEXPR@
/***********************************************************************
else
# endif
{
-# ifdef DEAL_II_WITH_CXX17
+# ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivial<Number>::value)
# else
if (std::is_trivial<Number>::value)
else
# endif
{
-# ifdef DEAL_II_WITH_CXX17
+# ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivial<Number>::value)
# else
if (std::is_trivial<Number>::value)
#include <deal.II/base/config.h>
-#ifdef DEAL_II_WITH_CXX14
-# include <algorithm>
-#endif
+#include <algorithm>
DEAL_II_NAMESPACE_OPEN
namespace std_cxx14
{
-#ifdef DEAL_II_WITH_CXX14
using std::max;
using std::min;
-
-#else
-
- template <class T>
- constexpr const T &
- max(const T &a, const T &b)
- {
- return (a < b) ? b : a;
- }
-
- template <class T, class Compare>
- constexpr const T &
- max(const T &a, const T &b, Compare comp)
- {
- return (comp(a, b)) ? b : a;
- }
-
- template <class T>
- constexpr const T &
- min(const T &a, const T &b)
- {
- return (b < a) ? b : a;
- }
-
- template <class T, class Compare>
- constexpr const T &
- min(const T &a, const T &b, Compare comp)
- {
- return (comp(b, a)) ? b : a;
- }
-
-#endif
} // namespace std_cxx14
DEAL_II_NAMESPACE_CLOSE
#include <memory>
-#ifndef DEAL_II_WITH_CXX14
-// needed for array type check
-# include <type_traits>
-#endif
-
DEAL_II_NAMESPACE_OPEN
namespace std_cxx14
{
-#ifdef DEAL_II_WITH_CXX14
using std::make_unique;
-
-#else
-
- namespace internal
- {
- template <typename T>
- struct is_bounded_array
- {
- static constexpr bool value = false;
- };
-
- template <typename T, std::size_t N>
- struct is_bounded_array<T[N]>
- {
- static constexpr bool value = true;
- };
- } // namespace internal
-
- template <typename T, typename... Args>
- inline
- typename std::enable_if<!std::is_array<T>::value, std::unique_ptr<T>>::type
- make_unique(Args &&... constructor_arguments)
- {
- return std::unique_ptr<T>(
- new T(std::forward<Args>(constructor_arguments)...));
- }
-
- template <typename T>
- inline
- typename std::enable_if<std::is_array<T>::value, std::unique_ptr<T>>::type
- make_unique(std::size_t n)
- {
- static_assert(!internal::is_bounded_array<T>::value,
- "This function is not implemented for bounded array types.");
- return std::unique_ptr<T>(new typename std::remove_extent<T>::type[n]);
- }
-
-#endif
} // namespace std_cxx14
DEAL_II_NAMESPACE_CLOSE
#include <utility>
-#ifndef DEAL_II_WITH_CXX14
-// needed for array type check
-# include <type_traits>
-#endif
-
DEAL_II_NAMESPACE_OPEN
namespace std_cxx14
{
-#ifdef DEAL_II_WITH_CXX14
using std::index_sequence;
using std::index_sequence_for;
using std::make_index_sequence;
-
-#else
-
- template <size_t... Ints>
- struct index_sequence
- {
- using type = index_sequence;
- using value_type = size_t;
- static constexpr std::size_t
- size() noexcept
- {
- return sizeof...(Ints);
- }
- };
-
- // --------------------------------------------------------------
- namespace internal
- {
- template <class Sequence1, class Sequence2>
- struct merge_and_renumber;
-
- template <size_t... I1, size_t... I2>
- struct merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>>
- : index_sequence<I1..., (sizeof...(I1) + I2)...>
- {};
- } // namespace internal
- // --------------------------------------------------------------
-
- template <std::size_t N>
- struct make_index_sequence : internal::merge_and_renumber<
- typename make_index_sequence<N / 2>::type,
- typename make_index_sequence<N - N / 2>::type>
- {};
-
- template <>
- struct make_index_sequence<0> : index_sequence<>
- {};
- template <>
- struct make_index_sequence<1> : index_sequence<0>
- {};
-
- template <class... T>
- using index_sequence_for = make_index_sequence<sizeof...(T)>;
-#endif
} // namespace std_cxx14
DEAL_II_NAMESPACE_CLOSE
constexpr T
pow(const T base, const int iexp)
{
-#if defined(DEBUG) && defined(DEAL_II_HAVE_CXX14_CONSTEXPR)
+#if defined(DEBUG) && defined(DEAL_II_CXX14_CONSTEXPR_BUG_OK)
// Up to __builtin_expect this is the same code as in the 'Assert' macro.
// The call to __builtin_expect turns out to be problematic.
if (!(iexp >= 0))
#if __GNUG__ && __GNUC__ < 5
if (__has_trivial_copy(T) && sizeof(T) < 256)
#else
-# ifdef DEAL_II_WITH_CXX17
+# ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivially_copyable<T>() && sizeof(T) < 256)
# else
if (std::is_trivially_copyable<T>() && sizeof(T) < 256)
#if __GNUG__ && __GNUC__ < 5
if (__has_trivial_copy(T) && sizeof(T) < 256)
#else
-# ifdef DEAL_II_WITH_CXX17
+# ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivially_copyable<T>() && sizeof(T) < 256)
# else
if (std::is_trivially_copyable<T>() && sizeof(T) < 256)
grain_size);
else if (matrix_size > 0)
{
-#ifdef DEAL_II_WITH_CXX17
+#ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivial<number>::value)
#else
if (std::is_trivial<number>::value)
if (value == Number())
{
-#ifdef DEAL_II_WITH_CXX17
+#ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivial<Number>::value)
#else
if (std::is_trivial<Number>::value)
if (__has_trivial_copy(Number) &&
std::is_same<Number, OtherNumber>::value)
#else
-# ifdef DEAL_II_WITH_CXX17
+# ifdef DEAL_II_HAVE_CXX17
if constexpr (std::is_trivially_copyable<Number>() &&
std::is_same<Number, OtherNumber>::value)
# else
* matrix, then this simply corresponds to the identity matrix.
*/
static DEAL_II_CONSTEXPR const SymmetricTensor<2, dim> I
-#ifdef DEAL_II_HAVE_CXX14_CONSTEXPR
+#ifdef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= unit_symmetric_tensor<dim>()
#endif
;
* operator.
*/
static DEAL_II_CONSTEXPR const SymmetricTensor<4, dim> S
-#ifdef DEAL_II_HAVE_CXX14_CONSTEXPR
+#ifdef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= identity_tensor<dim>()
#endif
;
* @f]
*/
static DEAL_II_CONSTEXPR const SymmetricTensor<4, dim> IxI
-#ifdef DEAL_II_HAVE_CXX14_CONSTEXPR
+#ifdef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= outer_product(unit_symmetric_tensor<dim>(),
unit_symmetric_tensor<dim>())
#endif
* @dealiiHolzapfelA{232,6.105}
*/
static DEAL_II_CONSTEXPR const SymmetricTensor<4, dim> dev_P
-#ifdef DEAL_II_HAVE_CXX14_CONSTEXPR
+#ifdef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= deviator_tensor<dim>()
#endif
;
template <int dim>
DEAL_II_CONSTEXPR const SymmetricTensor<2, dim>
Physics::Elasticity::StandardTensors<dim>::I
-# ifndef DEAL_II_HAVE_CXX14_CONSTEXPR
+# ifndef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= unit_symmetric_tensor<dim>()
# endif
;
template <int dim>
DEAL_II_CONSTEXPR const SymmetricTensor<4, dim>
Physics::Elasticity::StandardTensors<dim>::S
-# ifndef DEAL_II_HAVE_CXX14_CONSTEXPR
+# ifndef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= identity_tensor<dim>()
# endif
;
template <int dim>
DEAL_II_CONSTEXPR const SymmetricTensor<4, dim>
Physics::Elasticity::StandardTensors<dim>::IxI
-# ifndef DEAL_II_HAVE_CXX14_CONSTEXPR
+# ifndef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= outer_product(unit_symmetric_tensor<dim>(), unit_symmetric_tensor<dim>())
# endif
;
template <int dim>
DEAL_II_CONSTEXPR const SymmetricTensor<4, dim>
Physics::Elasticity::StandardTensors<dim>::dev_P
-# ifndef DEAL_II_HAVE_CXX14_CONSTEXPR
+# ifndef DEAL_II_CXX14_CONSTEXPR_BUG_OK
= deviator_tensor<dim>()
# endif
;
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
INCLUDE(../setup_testsubproject.cmake)
PROJECT(testsuite CXX)
-IF(DEAL_II_WITH_SYMENGINE AND DEAL_II_WITH_CXX11)
+IF(DEAL_II_WITH_SYMENGINE)
DEAL_II_PICKUP_TESTS()
ENDIF()