1#ifndef DUNE_FEM_GRIDPART_COMMON_POLICIES_HH
2#define DUNE_FEM_GRIDPART_COMMON_POLICIES_HH
7#include <dune/grid/common/gridview.hh>
20 template<
class Traits >
21 class GridPartPolicies;
27 namespace __GridPartPolicies
33 template<
class Traits >
34 std::true_type __hasGridView (
const Traits &,
const typename Traits::GridViewType * =
nullptr );
36 std::false_type __hasGridView ( ... );
38 template<
class Traits >
41 static const bool v =
decltype( __hasGridView( std::declval< Traits >() ) )::value;
49 template< class Traits, bool hasGridView = hasGridView< Traits >::v >
52 template<
class Traits >
53 class HasGridView< Traits, true >
56 typedef typename Traits::GridViewType GridViewType;
59 template<
class Traits >
60 class HasGridView< Traits, false >
62 typedef typename Traits::GridPartType GridPartType;
65 typedef Dune::GridView< GridPart2GridViewTraits< GridPartType > > GridViewType;
68 HasGridView () =
default;
71 operator GridPart2GridViewImpl< GridPartType > ()
const
73 return GridPart2GridViewImpl< GridPartType >( impl() );
77 const GridPartType &impl ()
const
79 return static_cast< const GridPartType &
>( *this );
92 template<
class Traits >
94 :
public __GridPartPolicies::HasGridView< Traits >
Definition: bindguard.hh:11
Definition: policies.hh:95