Metaprogramming, template variables and concepts.
Definition in file meta.hpp.
|
template<typename T > |
constexpr bool | meta::kIsVector = kIsInstantiationOf<std::vector, T> |
|
template<typename T > |
constexpr bool | meta::kIsRange = kIsDetected<impl::IsRange, T> |
|
template<typename T > |
constexpr bool | meta::kIsMap |
| Returns true if T is an ordered or unordered map or multimap.
|
|
template<typename T > |
constexpr bool | meta::kIsUniqueMap |
| Returns true if T is a map (but not a multimap!)
|
|
template<typename T > |
constexpr bool | meta::kIsRecursiveRange = std::is_same_v<DetectedType<impl::RangeValueType, T>, T> |
|
template<typename T > |
constexpr bool | meta::kIsIterator = impl::IsIterator<T>::value |
|
template<typename T > |
constexpr bool | meta::kIsOptional = kIsInstantiationOf<std::optional, T> |
|
template<typename T > |
constexpr bool | meta::kIsOstreamWritable = std::is_same_v<DetectedType<impl::OstreamWriteResult, T>, std::ostream&> |
|
template<typename T , typename U = T> |
constexpr bool | meta::kIsEqualityComparable = std::is_same_v<DetectedType<impl::EqualityComparisonResult, T, U>, bool> |
|
template<typename T > |
constexpr bool | meta::kIsStdHashable |
|
template<typename T > |
constexpr bool | meta::kIsSizable = kIsDetected<impl::IsSizable, T> |
| Check if std::size is applicable to container.
|
|
template<typename T > |
constexpr bool | meta::kIsReservable = kIsDetected<impl::ReserveResult, T> |
| Check if a container has reserve
|
|
template<typename T > |
constexpr bool | meta::kIsPushBackable = kIsDetected<impl::PushBackResult, T> |
| Check if a container has 'push_back'.
|
|
template<typename T > |
constexpr bool | meta::kIsFixedSizeContainer = impl::IsFixedSizeContainer<T>::value |
| Check if a container has fixed size (e.g. std::array)
|
|