Reflection for RapidJSON 0.0.16
Reflection for serializing/deserializing with RapidJSON
Loading...
Searching...
No Matches
traits.h File Reference
#include <c++utilities/misc/traits.h>
#include <map>
#include <set>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <variant>
Include dependency graph for traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ReflectiveRapidJSON::TreatAsMapOrHash< T >
 The TreatAsMapOrHash class allows treating custom classes as std::map or std::unordered_map. More...
 
struct  ReflectiveRapidJSON::TreatAsMultiMapOrHash< T >
 The TreatAsMultiMapOrHash class allows treating custom classes as std::multimap or std::unordered_multimap. More...
 
struct  ReflectiveRapidJSON::TreatAsSet< T >
 The TreatAsSet class allows treating custom classes as std::set or std::unordered_set. More...
 
struct  ReflectiveRapidJSON::TreatAsMultiSet< T >
 The TreatAsMultiSet class allows treating custom classes as std::multiset or std::unordered_multiset. More...
 

Namespaces

namespace  ReflectiveRapidJSON
 

Macros

#define REFLECTIVE_RAPIDJSON_TREAT_AS_MAP_OR_HASH(T)
 
#define REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_MAP_OR_HASH(T)
 
#define REFLECTIVE_RAPIDJSON_TREAT_AS_SET(T)
 
#define REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_SET(T)
 

Typedefs

template<typename Type >
using ReflectiveRapidJSON::IsMapOrHash = Traits::Any<Traits::IsSpecializationOf<Type, std::map>, Traits::IsSpecializationOf<Type, std::unordered_map>, TreatAsMapOrHash<Type>>
 
template<typename Type >
using ReflectiveRapidJSON::IsMultiMapOrHash
 
template<typename Type >
using ReflectiveRapidJSON::IsSet = Traits::Any<Traits::IsSpecializationOf<Type, std::set>, Traits::IsSpecializationOf<Type, std::unordered_set>, TreatAsSet<Type>>
 
template<typename Type >
using ReflectiveRapidJSON::IsMultiSet = Traits::Any<Traits::IsSpecializationOf<Type, std::multiset>, Traits::IsSpecializationOf<Type, std::unordered_multiset>, TreatAsMultiSet<Type>>
 
template<typename Type >
using ReflectiveRapidJSON::IsArrayOrSet
 
template<typename Type >
using ReflectiveRapidJSON::IsArray
 
template<typename Type >
using ReflectiveRapidJSON::IsIteratableExceptString
 
template<typename Type >
using ReflectiveRapidJSON::IsVariant = Traits::All<Traits::IsSpecializationOf<Type, std::variant>>
 

Macro Definition Documentation

◆ REFLECTIVE_RAPIDJSON_TREAT_AS_MAP_OR_HASH

#define REFLECTIVE_RAPIDJSON_TREAT_AS_MAP_OR_HASH ( T)
Value:
template <> struct TreatAsMapOrHash<T> : public Traits::Bool<true> {}

Definition at line 27 of file traits.h.

◆ REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_MAP_OR_HASH

#define REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_MAP_OR_HASH ( T)
Value:
template <> struct TreatAsMultiMapOrHash<T> : public Traits::Bool<true> {}

Definition at line 29 of file traits.h.

◆ REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_SET

#define REFLECTIVE_RAPIDJSON_TREAT_AS_MULTI_SET ( T)
Value:
template <> struct TreatAsMultiSet<T> : public Traits::Bool<true> {}

Definition at line 33 of file traits.h.

◆ REFLECTIVE_RAPIDJSON_TREAT_AS_SET

#define REFLECTIVE_RAPIDJSON_TREAT_AS_SET ( T)
Value:
template <> struct TreatAsSet<T> : public Traits::Bool<true> {}

Definition at line 31 of file traits.h.