implementation details for template meta programming More...
implementation details for template meta programming
Typedefs | |
template<class ... Tuples> | |
using | ConCatTuples = decltype(std::tuple_cat(std::declval< Tuples >()...)) |
helper alias to concatenate multiple tuples More... | |
Functions | |
template<class P > | |
constexpr auto | 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 | isDefinedProperty (...) |
fall back if a Property is defined More... | |
template<class T > | |
constexpr auto | 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 | hasParentTypeTag (...) |
fall back if a TypeTag doesn't inherit More... | |
using Dumux::Properties::Detail::ConCatTuples = typedef decltype(std::tuple_cat(std::declval<Tuples>()...)) |
helper alias to concatenate multiple tuples
|
constexpr |
fall back if a TypeTag doesn't inherit
|
constexpr |
check if a TypeTag inherits from other TypeTags
|
constexpr |
fall back if a Property is defined
|
constexpr |
check if a property P is defined