Loading...
Searching...
No Matches
propertysystem.hh File Reference

The Opm property system, traits with inheritance. More...

`#include <dune/common/classname.hh>`
`#include <tuple>`
`#include <type_traits>`

Go to the source code of this file.

## Classes

struct | Opm::Properties::UndefinedProperty
| a tag to mark properties as undefined More...
struct | Opm::Properties::Splices< TypeTag, MyTypeTag >
struct | Opm::Properties::Detail::GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, std::enable_if_t< hasParentTypeTag< LastTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, std::enable_if_t<!hasParentTypeTag< LastTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, std::enable_if_t< hasParentTypeTag< FirstTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, std::enable_if_t<!hasParentTypeTag< FirstTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetDefined< TypeTag, Property, std::tuple< LastTypeTag > >
struct | Opm::Properties::Detail::GetDefined< TypeTag, Property, std::tuple< FirstTypeTag, Args... > >
struct | Opm::Properties::Detail::GetNextSpliceTypeTag< TypeTag, std::tuple< LastTypeTag >, std::enable_if_t< hasParentTypeTag< LastTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextSpliceTypeTag< TypeTag, std::tuple< LastTypeTag >, std::enable_if_t<!hasParentTypeTag< LastTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextSpliceTypeTag< TypeTag, std::tuple< FirstTypeTag, Args... >, std::enable_if_t< hasParentTypeTag< FirstTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetNextSpliceTypeTag< TypeTag, std::tuple< FirstTypeTag, Args... >, std::enable_if_t<!hasParentTypeTag< FirstTypeTag >(int{}), void > >
struct | Opm::Properties::Detail::GetDefinedSplice< TypeTag, std::tuple< LastTypeTag > >
struct | Opm::Properties::Detail::GetDefinedSplice< TypeTag, std::tuple< FirstTypeTag, Args... > >
struct | Opm::Properties::Detail::GetPropImpl< TypeTag, Property >
| helper struct to extract get the Property specilization given a TypeTag, asserts that the property is defined More...
struct | Opm::Properties::Detail::GetSplicePropImpl< TypeTag, SpliceTypeTag, Property >

## 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

## Detailed Description

The Opm property system, traits with inheritance.

Author
  Timo Koch