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 | |
| template<class TypeTag, template< class, class > class Property> | |
| using | Dumux::GetProp = typename Properties::Detail::GetPropImpl<TypeTag, Property>::type |
| get the type of a property | |
| 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 | |
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 | |
| template<class P> | |
| constexpr std::true_type | Dumux::Properties::Detail::isDefinedProperty (...) |
| fall back if a Property is defined | |
| 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 | |
| template<class T> | |
| constexpr std::false_type | Dumux::Properties::Detail::hasParentTypeTag (...) |
| fall back if a TypeTag doesn't inherit | |
| template<class TypeTag, template< class, class > class Property> | |
| constexpr auto | Dumux::getPropValue () |
| get the value data member of a property | |