Metaprogramming, template variables and concepts.
Definition in file meta.hpp.
Go to the source code of this file.
#include <iosfwd>
#include <iterator>
#include <optional>
#include <type_traits>
#include <vector>
#include <userver/utils/meta_light.hpp>
Typedefs | |
template<typename T > | |
using | meta::MapKeyType = DetectedType<impl::KeyType, T> |
template<typename T > | |
using | meta::MapValueType = DetectedType<impl::MappedType, T> |
template<typename T > | |
using | meta::RangeValueType = DetectedType<impl::RangeValueType, T> |
Functions | |
template<typename T > | |
auto | meta::Inserter (T &container) |
Returns default inserter for a container. | |
Variables | |
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 |
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 |
template<typename T , typename U = T> | |
constexpr bool | meta::kIsEqualityComparable |
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 |
Check if a container has fixed size (e.g. std::array) | |
using meta::MapKeyType = DetectedType<impl::KeyType, T> |
using meta::MapValueType = DetectedType<impl::MappedType, T> |
using meta::RangeValueType = DetectedType<impl::RangeValueType, T> |
auto meta::Inserter | ( | T & | container | ) |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Returns true if T is an ordered or unordered map or multimap.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Returns true if T is a map (but not a multimap!)