File: getdimension.hh

package info (click to toggle)
dune-common 2.10.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,824 kB
  • sloc: cpp: 52,256; python: 3,979; sh: 1,658; makefile: 17
file content (24 lines) | stat: -rw-r--r-- 874 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
#ifndef DUNE_PYTHON_COMMON_GETDIMENSION_HH
#define DUNE_PYTHON_COMMON_GETDIMENSION_HH

#include <type_traits>

#include <dune/common/fvector.hh>
#include <dune/common/fmatrix.hh>

template< class T, class=void >
struct GetDimension;

template< class T >
struct GetDimension< T, std::enable_if_t<std::is_arithmetic<T>::value>>
   : public std::integral_constant< int, 1 > {};
template< class FT, int dim >
struct GetDimension<Dune::FieldVector<FT,dim>>
   : public std::integral_constant< int, dim > {};
template< class FT, int dimr, int dimc >
struct GetDimension<Dune::FieldMatrix<FT,dimr,dimc>>
   : public std::integral_constant< int, dimr*dimc > {};

#endif // DUNE_PYTHON_COMMON_GETDIMENSION_HH