template<typename, typename> struct adl_serializer;
Serializer that uses ADL (Argument-Dependent Lookup) to choose to_json
/from_json
functions from the types' namespaces.
It is implemented similar to
template<typename ValueType> struct adl_serializer { template<typename BasicJsonType> static void to_json(BasicJsonType& j, const T& value) { // calls the "to_json" method in T's namespace } template<typename BasicJsonType> static void from_json(const BasicJsonType& j, T& value) { // same thing, but with the "from_json" method } };