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.