mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-23 13:55:36 +08:00
refs #876 Utility to examine which members of value objects compare equal.
This commit is contained in:
@@ -263,6 +263,12 @@ namespace BlackMisc
|
||||
{
|
||||
return getIntrospector<T>(Private::make_index_sequence<T::MetaClass::getMemberList().c_size>());
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static std::true_type hasMetaClass(int, typename T::MetaClass * = nullptr) { return {}; }
|
||||
|
||||
template <typename T>
|
||||
static std::false_type hasMetaClass(...) { return {}; }
|
||||
};
|
||||
}
|
||||
|
||||
@@ -277,6 +283,13 @@ namespace BlackMisc
|
||||
return Private::CMetaClassAccessor::getIntrospector<T>();
|
||||
}
|
||||
|
||||
/*!
|
||||
* Trait that is true if T has a metaclass.
|
||||
* \ingroup MetaClass
|
||||
*/
|
||||
template <typename T>
|
||||
struct THasMetaClass : public decltype(Private::CMetaClassAccessor::hasMetaClass<T>(0)) {};
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user