dune-common 3.0-git
Classes | Functions
Dune::Hybrid::Impl Namespace Reference

Classes

class  DynamicIntegralRange
 
class  StaticIntegralRange
 

Functions

template<class T , int i>
constexpr auto size (const Dune::FieldVector< T, i > *, const PriorityTag< 5 > &) -> decltype(std::integral_constant< std::size_t, i >())
 
template<class T , T... t, class Index >
constexpr auto size (std::integer_sequence< T, t... >, PriorityTag< 4 >)
 
template<class T >
constexpr auto size (const T *, const PriorityTag< 3 > &) -> decltype(std::integral_constant< std::size_t, std::tuple_size< T >::value >())
 
template<class T >
constexpr auto size (const T *, const PriorityTag< 1 > &) -> decltype(std::integral_constant< std::size_t, T::size()>())
 
template<class T >
constexpr auto size (const T *t, const PriorityTag< 0 > &)
 
template<class Container , class Index , std::enable_if_t< IsTuple< std::decay_t< Container > >::value, int > = 0>
constexpr decltype(auto) elementAt (Container &&c, Index &&, PriorityTag< 2 >)
 
template<class T , T... t, class Index >
constexpr decltype(auto) elementAt (std::integer_sequence< T, t... > c, Index &&, PriorityTag< 1 >)
 
template<class Container , class Index >
constexpr decltype(auto) elementAt (Container &&c, Index &&i, PriorityTag< 0 >)
 
template<class Begin , class End , std::enable_if_t< IsIntegralConstant< Begin >::value and IsIntegralConstant< End >::value, int > = 0>
constexpr auto integralRange (const Begin &begin, const End &end, const PriorityTag< 1 > &)
 
template<class Begin , class End >
auto integralRange (const Begin &begin, const End &end, const PriorityTag< 0 > &)
 

Function Documentation

◆ elementAt() [1/3]

template<class Container , class Index , std::enable_if_t< IsTuple< std::decay_t< Container > >::value, int > = 0>
constexpr decltype(auto) Dune::Hybrid::Impl::elementAt ( Container &&  c,
Index &&  ,
PriorityTag< 2 >   
)
constexpr

◆ elementAt() [2/3]

template<class Container , class Index >
constexpr decltype(auto) Dune::Hybrid::Impl::elementAt ( Container &&  c,
Index &&  i,
PriorityTag< 0 >   
)
constexpr

◆ elementAt() [3/3]

template<class T , T... t, class Index >
constexpr decltype(auto) Dune::Hybrid::Impl::elementAt ( std::integer_sequence< T, t... >  c,
Index &&  ,
PriorityTag< 1 >   
)
constexpr

◆ integralRange() [1/2]

template<class Begin , class End >
auto Dune::Hybrid::Impl::integralRange ( const Begin &  begin,
const End &  end,
const PriorityTag< 0 > &   
)

◆ integralRange() [2/2]

template<class Begin , class End , std::enable_if_t< IsIntegralConstant< Begin >::value and IsIntegralConstant< End >::value, int > = 0>
constexpr auto Dune::Hybrid::Impl::integralRange ( const Begin &  begin,
const End &  end,
const PriorityTag< 1 > &   
)
constexpr

◆ size() [1/5]

template<class T , int i>
constexpr auto Dune::Hybrid::Impl::size ( const Dune::FieldVector< T, i > *  ,
const PriorityTag< 5 > &   
) -> decltype(std::integral_constant<std::size_t,i>())
constexpr

◆ size() [2/5]

template<class T >
constexpr auto Dune::Hybrid::Impl::size ( const T *  ,
const PriorityTag< 1 > &   
) -> decltype(std::integral_constant<std::size_t,T::size()>())
constexpr

◆ size() [3/5]

template<class T >
constexpr auto Dune::Hybrid::Impl::size ( const T *  ,
const PriorityTag< 3 > &   
) -> decltype(std::integral_constant<std::size_t,std::tuple_size<T>::value>())
constexpr

◆ size() [4/5]

template<class T >
constexpr auto Dune::Hybrid::Impl::size ( const T *  t,
const PriorityTag< 0 > &   
)
constexpr

◆ size() [5/5]

template<class T , T... t, class Index >
constexpr auto Dune::Hybrid::Impl::size ( std::integer_sequence< T, t... >  ,
PriorityTag< 4 >   
)
constexpr