The Dumux property system, traits with inheritance. More...
#include <tuple>
#include <type_traits>
Go to the source code of this file.
The Dumux property system, traits with inheritance.
Namespaces | |
namespace | Dumux |
namespace | Dumux::Properties |
namespace | Dumux::Properties::Detail |
implementation details for template meta programming | |
Typedefs | |
template<class ... Tuples> | |
using | Dumux::Properties::Detail::ConCatTuples = decltype(std::tuple_cat(std::declval< Tuples >()...)) |
helper alias to concatenate multiple tuples More... | |
template<class TypeTag , template< class, class > class Property> | |
using | Dumux::GetProp = typename Properties::Detail::GetPropImpl< TypeTag, Property >::type |
get the type of a property More... | |
template<class TypeTag , template< class, class > class Property> | |
using | Dumux::GetPropType = typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type |
get the type alias defined in the property More... | |
Functions | |
template<class P > | |
constexpr auto | Dumux::Properties::Detail::isDefinedProperty (int) -> decltype(std::integral_constant< bool, !std::is_same_v< typename P::type, UndefinedProperty > >{}) |
check if a property P is defined More... | |
template<class P > | |
constexpr std::true_type | Dumux::Properties::Detail::isDefinedProperty (...) |
fall back if a Property is defined More... | |
template<class T > | |
constexpr auto | Dumux::Properties::Detail::hasParentTypeTag (int) -> decltype(std::declval< typename T::InheritsFrom >(), std::true_type{}) |
check if a TypeTag inherits from other TypeTags More... | |
template<class T > | |
constexpr std::false_type | Dumux::Properties::Detail::hasParentTypeTag (...) |
fall back if a TypeTag doesn't inherit More... | |
template<class TypeTag , template< class, class > class Property> | |
constexpr auto | Dumux::getPropValue () |
get the value data member of a property More... | |