From eb5be1276a2cc4c5d91dcb4e1677b11495cd92ef Mon Sep 17 00:00:00 2001 From: Simon Praetorius <simon.praetorius@tu-dresden.de> Date: Sat, 18 Jan 2020 16:06:00 +0100 Subject: [PATCH] moved sizeImpl into local static member function --- dune/vtk/vtkfunction.hh | 34 ++++++++++++------------- src/test/mixed_element_test.cc | 3 +++ src/test/parallel_reader_writer_test.cc | 3 +++ src/test/reader_writer_test.cc | 4 +++ 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/dune/vtk/vtkfunction.hh b/dune/vtk/vtkfunction.hh index d8ce4f9..8fa41f7 100644 --- a/dune/vtk/vtkfunction.hh +++ b/dune/vtk/vtkfunction.hh @@ -16,24 +16,6 @@ namespace Dune template <class T, int N, int M> class FieldMatrix; - namespace Impl - { - template <class T, class = void> - struct SizeImpl - : std::integral_constant<int, 1> {}; - - template <class T, int N> - struct SizeImpl<FieldVector<T,N>> - : std::integral_constant<int, N> {}; - - template <class T, int N, int M> - struct SizeImpl<FieldMatrix<T,N,M>> - : std::integral_constant<int, N*M> {}; - } - - template <class T> - constexpr int sizeOf () { return Impl::SizeImpl<std::decay_t<T>>::value; } - /// Wrapper class for functions allowing local evaluations. template <class GridView> @@ -47,6 +29,22 @@ namespace Dune template <class F> using Range = std::decay_t<decltype(std::declval<F>()(std::declval<Domain>()))>; + private: + + template <class T, int N> + static auto sizeOfImpl (FieldVector<T,N> const&) + -> std::integral_constant<int, N> { return {}; } + + template <class T, int N, int M> + static auto sizeOfImpl (FieldMatrix<T,N,M> const&) + -> std::integral_constant<int, N*M> { return {}; }; + + static auto sizeOfImpl (...) + -> std::integral_constant<int, 1> { return {}; } + + template <class T> + static constexpr int sizeOf () { return decltype(sizeOfImpl(std::declval<T>()))::value; } + public: /// Constructor VtkFunction from legacy VTKFunction /** diff --git a/src/test/mixed_element_test.cc b/src/test/mixed_element_test.cc index 589a105..0a5b446 100644 --- a/src/test/mixed_element_test.cc +++ b/src/test/mixed_element_test.cc @@ -13,7 +13,10 @@ #include <dune/common/filledarray.hh> #include <dune/common/test/testsuite.hh> +#if HAVE_UG #include <dune/grid/uggrid.hh> +#endif + #include <dune/grid/yaspgrid.hh> #include <dune/grid/utility/structuredgridfactory.hh> diff --git a/src/test/parallel_reader_writer_test.cc b/src/test/parallel_reader_writer_test.cc index a15261b..72dd52b 100644 --- a/src/test/parallel_reader_writer_test.cc +++ b/src/test/parallel_reader_writer_test.cc @@ -14,7 +14,10 @@ #include <dune/common/std/type_traits.hh> #include <dune/common/test/testsuite.hh> +#if HAVE_UG #include <dune/grid/uggrid.hh> +#endif + #include <dune/grid/yaspgrid.hh> #include <dune/grid/utility/structuredgridfactory.hh> diff --git a/src/test/reader_writer_test.cc b/src/test/reader_writer_test.cc index f0051fc..c7edefb 100644 --- a/src/test/reader_writer_test.cc +++ b/src/test/reader_writer_test.cc @@ -7,13 +7,17 @@ #include <cstring> #include <iostream> +#include <set> #include <vector> #include <dune/common/parallel/mpihelper.hh> // An initializer of MPI #include <dune/common/filledarray.hh> #include <dune/common/test/testsuite.hh> +#if HAVE_UG #include <dune/grid/uggrid.hh> +#endif + #include <dune/grid/yaspgrid.hh> #include <dune/grid/utility/structuredgridfactory.hh> -- GitLab