propertysystem.hh
Go to the documentation of this file.
54-> decltype(std::integral_constant<bool, !std::is_same<typename P::type, UndefinedProperty>::value>{})
84struct GetNextTypeTag<TypeTag, Property, std::tuple<LastTypeTag>, std::enable_if_t<hasParentTypeTag<LastTypeTag>(int{}), void>>
85{ using type = typename GetDefined<TypeTag, Property, typename LastTypeTag::InheritsFrom>::type; };
88struct GetNextTypeTag<TypeTag, Property, std::tuple<LastTypeTag>, std::enable_if_t<!hasParentTypeTag<LastTypeTag>(int{}), void>>
92struct GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<hasParentTypeTag<FirstTypeTag>(int{}), void>>
93{ using type = typename GetDefined<TypeTag, Property, ConCatTuples<typename FirstTypeTag::InheritsFrom, std::tuple<Args...>>>::type; };
96struct GetNextTypeTag<TypeTag, Property, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<!hasParentTypeTag<FirstTypeTag>(int{}), void>>
145struct GetNextSpliceTypeTag<TypeTag, std::tuple<LastTypeTag>, std::enable_if_t<hasParentTypeTag<LastTypeTag>(int{}), void>>
149struct GetNextSpliceTypeTag<TypeTag, std::tuple<LastTypeTag>, std::enable_if_t<!hasParentTypeTag<LastTypeTag>(int{}), void>>
153struct GetNextSpliceTypeTag<TypeTag, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<hasParentTypeTag<FirstTypeTag>(int{}), void>>
154{ using type = typename GetDefinedSplice<TypeTag, ConCatTuples<typename FirstTypeTag::InheritsFrom, std::tuple<Args...>>>::type; };
157struct GetNextSpliceTypeTag<TypeTag, std::tuple<FirstTypeTag, Args...>, std::enable_if_t<!hasParentTypeTag<FirstTypeTag>(int{}), void>>
163-> decltype(std::integral_constant<bool, !std::is_same<typename S::type, std::tuple<>>::value>{})
217 using type = typename Detail::GetDefined<TypeTag, Property, std::tuple<TypeTag, SpliceTypeTag>>::type;
238using GetSplicePropType = typename Properties::Detail::GetSplicePropImpl<TypeTag, SpliceTypeTag, Property>::type::type;
242constexpr 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:63 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:53 decltype(std::tuple_cat(std::declval< Tuples >()...)) ConCatTuples helper alias to concatenate multiple tuples Definition: propertysystem.hh:73 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:162 Definition: blackoilboundaryratevector.hh:37 constexpr auto getPropValue() get the value data member of a property Definition: propertysystem.hh:242 typename Properties::Detail::GetSplicePropImpl< TypeTag, SpliceTypeTag, Property >::type::type GetSplicePropType Definition: propertysystem.hh:238 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:235 typename Properties::Detail::GetPropImpl< TypeTag, Property >::type GetProp get the type of a property (equivalent to old macro GET_PROP(...)) Definition: propertysystem.hh:226 std::conditional_t< isDefinedProperty< LastType >(int{}), LastType, typename GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, void >::type > type Definition: propertysystem.hh:116 Property< TypeTag, LastTypeTag > LastType Definition: propertysystem.hh:111 std::conditional_t< isDefinedProperty< FirstType >(int{}), FirstType, typename GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, void >::type > type Definition: propertysystem.hh:132 Property< TypeTag, FirstTypeTag > FirstType Definition: propertysystem.hh:127 helper struct to get the first property that is defined in the TypeTag hierarchy Definition: propertysystem.hh:77 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:195 std::conditional_t< isDefinedSplice< FirstSplice >(int{}), ConCatTuples< typename FirstSplice::type, nexttuple >, nexttuple > type Definition: propertysystem.hh:199 std::conditional_t< isDefinedSplice< LastSplice >(int{}), ConCatTuples< nexttuple, typename LastSplice::type >, nexttuple > type Definition: propertysystem.hh:183 typename GetNextSpliceTypeTag< TypeTag, ConCatTuples< std::tuple< LastTypeTag >, typename LastSplice::type >, void >::type nexttuple Definition: propertysystem.hh:179 helper struct to get the first property that is defined in the TypeTag hierarchy Definition: propertysystem.hh:138 typename GetDefinedSplice< TypeTag, ConCatTuples< typename FirstTypeTag::InheritsFrom, std::tuple< Args... > > >::type type Definition: propertysystem.hh:154 typename GetDefinedSplice< TypeTag, typename LastTypeTag::InheritsFrom >::type type Definition: propertysystem.hh:146 std::tuple<> type Definition: propertysystem.hh:150 typename GetDefinedSplice< TypeTag, std::tuple< Args... > >::type type Definition: propertysystem.hh:158 helper struct to iterate over the TypeTag hierarchy Definition: propertysystem.hh:142 typename GetDefined< TypeTag, Property, typename LastTypeTag::InheritsFrom >::type type Definition: propertysystem.hh:85 typename GetDefined< TypeTag, Property, ConCatTuples< typename FirstTypeTag::InheritsFrom, std::tuple< Args... > > >::type type Definition: propertysystem.hh:93 typename GetDefined< TypeTag, Property, std::tuple< Args... > >::type type Definition: propertysystem.hh:97 helper struct to iterate over the TypeTag hierarchy Definition: propertysystem.hh:81 helper struct to extract get the Property specilization given a TypeTag, asserts that the property is... Definition: propertysystem.hh:205 typename Detail::GetDefinedSplice< TypeTag, std::tuple< TypeTag > >::type tuple Definition: propertysystem.hh:206 typename Detail::GetDefined< TypeTag, Property, ConCatTuples< std::tuple< TypeTag >, tuple > >::type type Definition: propertysystem.hh:210 Definition: propertysystem.hh:216 typename Detail::GetDefined< TypeTag, Property, std::tuple< TypeTag, SpliceTypeTag > >::type type Definition: propertysystem.hh:217 Definition: propertysystem.hh:44 a tag to mark properties as undefined Definition: propertysystem.hh:40 |