Skip to content

# adl_serializer

    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
        }
    };

## Member functions

- from_json - convert a JSON value to any value type
- to_json - convert any value type to a JSON value