propertysystem.hh
Go to the documentation of this file.
52-> decltype(std::integral_constant<bool, !std::is_same<typename P::type, UndefinedProperty>::value>{})
82struct GetNextTypeTag<TypeTag, Property, std::tuple<LastTypeTag>, std::enable_if_t<hasParentTypeTag<LastTypeTag>(int{}), void>>
83{ using type = typename GetDefined<TypeTag, Property, typename LastTypeTag::InheritsFrom>::type; };
86struct GetNextTypeTag<TypeTag, Property, std::tuple<LastTypeTag>, std::enable_if_t<!hasParentTypeTag<LastTypeTag>(int{}), void>>
90struct GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<hasParentTypeTag<FirstTypeTag>(int{}), void>>
91{ using type = typename GetDefined<TypeTag, Property, ConCatTuples<typename FirstTypeTag::InheritsFrom, std::tuple<Args...>>>::type; };
94struct GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<!hasParentTypeTag<FirstTypeTag>(int{}), void>>
143struct GetNextSpliceTypeTag<TypeTag, std::tuple<LastTypeTag>, std::enable_if_t<hasParentTypeTag<LastTypeTag>(int{}), void>>
147struct GetNextSpliceTypeTag<TypeTag, std::tuple<LastTypeTag>, std::enable_if_t<!hasParentTypeTag<LastTypeTag>(int{}), void>>
151struct GetNextSpliceTypeTag<TypeTag, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<hasParentTypeTag<FirstTypeTag>(int{}), void>>
152{ using type = typename GetDefinedSplice<TypeTag, ConCatTuples<typename FirstTypeTag::InheritsFrom, std::tuple<Args...>>>::type; };
155struct GetNextSpliceTypeTag<TypeTag, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<!hasParentTypeTag<FirstTypeTag>(int{}), void>>
161-> decltype(std::integral_constant<bool, !std::is_same<typename S::type, std::tuple<>>::value>{})
215 using type = typename Detail::GetDefined<TypeTag, Property, std::tuple<TypeTag, SpliceTypeTag>>::type;
236using GetSplicePropType = typename Properties::Detail::GetSplicePropImpl<TypeTag, SpliceTypeTag, Property>::type::type;
240constexpr auto getPropValue() { return Properties::Detail::GetPropImpl<TypeTag, Property>::type::value; }
constexpr auto hasParentTypeTag(int) -> decltype(std::declval< typename T::InheritsFrom >(), std::true_type{}) check if a TypeTag inherits from other TypeTags Definition: propertysystem.hh:61 constexpr auto isDefinedProperty(int) -> decltype(std::integral_constant< bool, !std::is_same< typename P::type, UndefinedProperty >::value >{}) check if a property P is defined Definition: propertysystem.hh:51 decltype(std::tuple_cat(std::declval< Tuples >()...)) ConCatTuples helper alias to concatenate multiple tuples Definition: propertysystem.hh:71 constexpr auto isDefinedSplice(int) -> decltype(std::integral_constant< bool, !std::is_same< typename S::type, std::tuple<> >::value >{}) check if a splice S is defined Definition: propertysystem.hh:160 Definition: blackoilboundaryratevector.hh:39 constexpr auto getPropValue() get the value data member of a property Definition: propertysystem.hh:240 typename Properties::Detail::GetSplicePropImpl< TypeTag, SpliceTypeTag, Property >::type::type GetSplicePropType Definition: propertysystem.hh:236 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(.... Definition: propertysystem.hh:233 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type GetProp get the type of a property (equivalent to old macro GET_PROP(...)) Definition: propertysystem.hh:224 std::conditional_t< isDefinedProperty< LastType >(int{}), LastType, typename GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, void >::type > type Definition: propertysystem.hh:114 Property< TypeTag, LastTypeTag > LastType Definition: propertysystem.hh:109 std::conditional_t< isDefinedProperty< FirstType >(int{}), FirstType, typename GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, void >::type > type Definition: propertysystem.hh:130 Property< TypeTag, FirstTypeTag > FirstType Definition: propertysystem.hh:125 helper struct to get the first property that is defined in the TypeTag hierarchy Definition: propertysystem.hh:75 Opm::Properties::Detail::GetDefinedSplice< TypeTag, std::tuple< FirstTypeTag, Args... > >::nexttuple typename GetNextSpliceTypeTag< TypeTag, ConCatTuples< std::tuple< FirstTypeTag, Args... >, typename FirstSplice::type >, void >::type nexttuple Definition: propertysystem.hh:193 std::conditional_t< isDefinedSplice< FirstSplice >(int{}), ConCatTuples< typename FirstSplice::type, nexttuple >, nexttuple > type Definition: propertysystem.hh:197 std::conditional_t< isDefinedSplice< LastSplice >(int{}), ConCatTuples< nexttuple, typename LastSplice::type >, nexttuple > type Definition: propertysystem.hh:181 typename GetNextSpliceTypeTag< TypeTag, ConCatTuples< std::tuple< LastTypeTag >, typename LastSplice::type >, void >::type nexttuple Definition: propertysystem.hh:177 helper struct to get the first property that is defined in the TypeTag hierarchy Definition: propertysystem.hh:136 typename GetDefinedSplice< TypeTag, ConCatTuples< typename FirstTypeTag::InheritsFrom, std::tuple< Args... > > >::type type Definition: propertysystem.hh:152 typename GetDefinedSplice< TypeTag, typename LastTypeTag::InheritsFrom >::type type Definition: propertysystem.hh:144 std::tuple<> type Definition: propertysystem.hh:148 typename GetDefinedSplice< TypeTag, std::tuple< Args... > >::type type Definition: propertysystem.hh:156 helper struct to iterate over the TypeTag hierarchy Definition: propertysystem.hh:140 typename GetDefined< TypeTag, Property, typename LastTypeTag::InheritsFrom >::type type Definition: propertysystem.hh:83 typename GetDefined< TypeTag, Property, ConCatTuples< typename FirstTypeTag::InheritsFrom, std::tuple< Args... > > >::type type Definition: propertysystem.hh:91 typename GetDefined< TypeTag, Property, std::tuple< Args... > >::type type Definition: propertysystem.hh:95 helper struct to iterate over the TypeTag hierarchy Definition: propertysystem.hh:79 helper struct to extract get the Property specilization given a TypeTag, asserts that the property is... Definition: propertysystem.hh:203 typename Detail::GetDefinedSplice< TypeTag, std::tuple< TypeTag > >::type tuple Definition: propertysystem.hh:204 typename Detail::GetDefined< TypeTag, Property, ConCatTuples< std::tuple< TypeTag >, tuple > >::type type Definition: propertysystem.hh:208 Definition: propertysystem.hh:214 typename Detail::GetDefined< TypeTag, Property, std::tuple< TypeTag, SpliceTypeTag > >::type type Definition: propertysystem.hh:215 Definition: propertysystem.hh:42 a tag to mark properties as undefined Definition: propertysystem.hh:38 |