// // json_binder.h // json // // Created by Sam Jaffe on 1/31/16. // Copyright © 2016 Sam Jaffe. All rights reserved. // #ifndef json_parser_h #define json_parser_h #pragma once #include namespace json { class value; namespace binder { template class visitor; } namespace parser { void parse(value& json, char const* data); template void parse(binder::visitor&, char const*); template void parse(T& json, std::string const& str) { parse(json, str.c_str()); } template void parse(T& json, std::istream & in) { in.seekg(0, std::ios_base::end); size_t end = in.tellg(); char data[end]; in.seekg(0); in.read(data, end); parse(json, data); } template void parse(binder::visitor&& v, V& s) { parse(v, s); } } } #endif /* json_parser_h */