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>
 Include dependency graph for meta.hpp:
 This graph shows which files directly or indirectly include this file: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!)