|
| struct | GetDefined |
| | helper struct to get the first property that is defined in the TypeTag hierarchy More...
|
| struct | GetNextTypeTag |
| | helper struct to iterate over the TypeTag hierarchy More...
|
| struct | GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, std::enable_if_t< hasParentTypeTag< LastTypeTag >(int{}), void > > |
| struct | GetNextTypeTag< TypeTag, Property, std::tuple< LastTypeTag >, std::enable_if_t<!hasParentTypeTag< LastTypeTag >(int{}), void > > |
| struct | GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, std::enable_if_t< hasParentTypeTag< FirstTypeTag >(int{}), void > > |
| struct | GetNextTypeTag< TypeTag, Property, std::tuple< FirstTypeTag, Args... >, std::enable_if_t<!hasParentTypeTag< FirstTypeTag >(int{}), void > > |
| struct | GetDefined< TypeTag, Property, std::tuple< LastTypeTag > > |
| struct | GetDefined< TypeTag, Property, std::tuple< FirstTypeTag, Args... > > |
| struct | GetDefinedSplice |
| | helper struct to get the first property that is defined in the TypeTag hierarchy More...
|
| struct | GetNextSpliceTypeTag |
| | helper struct to iterate over the TypeTag hierarchy More...
|
| struct | GetNextSpliceTypeTag< TypeTag, std::tuple< LastTypeTag >, std::enable_if_t< hasParentTypeTag< LastTypeTag >(int{}), void > > |
| struct | GetNextSpliceTypeTag< TypeTag, std::tuple< LastTypeTag >, std::enable_if_t<!hasParentTypeTag< LastTypeTag >(int{}), void > > |
| struct | GetNextSpliceTypeTag< TypeTag, std::tuple< FirstTypeTag, Args... >, std::enable_if_t< hasParentTypeTag< FirstTypeTag >(int{}), void > > |
| struct | GetNextSpliceTypeTag< TypeTag, std::tuple< FirstTypeTag, Args... >, std::enable_if_t<!hasParentTypeTag< FirstTypeTag >(int{}), void > > |
| struct | GetDefinedSplice< TypeTag, std::tuple< LastTypeTag > > |
| struct | GetDefinedSplice< TypeTag, std::tuple< FirstTypeTag, Args... > > |
| struct | GetPropImpl |
| | helper struct to extract get the Property specilization given a TypeTag, asserts that the property is defined More...
|
| struct | GetSplicePropImpl |
|
|
template<class P> |
| constexpr auto | 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 | isDefinedProperty (...) |
| | fall back if a Property is defined
|
|
template<class T> |
| constexpr auto | 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 | hasParentTypeTag (...) |
| | fall back if a TypeTag doesn't inherit
|
|
template<class S> |
| 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
|
|
template<class S> |
| constexpr std::true_type | isDefinedSplice (...) |
| | fall back if a splice is defined
|
implementation details for template meta programming