|
My Project
|
The Opm property system, traits with inheritance. More...
#include <dune/common/classname.hh>#include <cstring>#include <ostream>#include <tuple>#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | Opm |
| This file contains a set of helper functions used by VFPProd / VFPInj. | |
| namespace | Opm::Properties::Detail |
| implementation details for template meta programming | |
Typedefs | |
| template<class ... Tuples> | |
| using | Opm::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 | Opm::GetProp = typename Properties::Detail::GetPropImpl< TypeTag, Property >::type |
| get the type of a property (equivalent to old macro GET_PROP(...)) | |
| template<class TypeTag , template< class, class > class Property> | |
| using | Opm::GetPropType = typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type |
| get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(...)) | |
| template<class TypeTag , class SpliceTypeTag , template< class, class > class Property> | |
| using | Opm::GetSplicePropType = typename Properties::Detail::GetSplicePropImpl< TypeTag, SpliceTypeTag, Property >::type::type |
Functions | |
| template<class P > | |
| constexpr auto | Opm::Properties::Detail::isDefinedProperty (int) -> decltype(std::integral_constant< bool, !std::is_same< typename P::type, UndefinedProperty >::value >{}) |
| check if a property P is defined | |
| template<class P > | |
| constexpr std::true_type | Opm::Properties::Detail::isDefinedProperty (...) |
| fall back if a Property is defined | |
| template<class T > | |
| constexpr auto | Opm::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 | Opm::Properties::Detail::hasParentTypeTag (...) |
| fall back if a TypeTag doesn't inherit | |
| template<class S > | |
| constexpr auto | Opm::Properties::Detail::isDefinedSplice (int) -> decltype(std::integral_constant< bool, !std::is_same< typename S::type, std::tuple<> >::value >{}) |
| check if a splice S is defined | |
| template<class S > | |
| constexpr std::true_type | Opm::Properties::Detail::isDefinedSplice (...) |
| fall back if a splice is defined | |
| template<class TypeTag , template< class, class > class Property> | |
| constexpr auto | Opm::getPropValue () |
| get the value data member of a property | |
The Opm property system, traits with inheritance.