Coder Social home page Coder Social logo

json.hpp's People

Contributors

no1msd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

json.hpp's Issues

Trouble compiling the example code on OSX

Been trying to get your wonderful looking c++ mstch project running, but I've been having some boost related problems. I'm a bit of a c++ noob, was hoping you might be able to help me get going? I'm running on OSX, my code is almost cut/pasted from the example

My goal is to generate a templating library that can be used crossplatform on both iOS and Android operating systems (and other platforms as needed). Thanks! Please let me know if there's any other info I can provide


#include <string>
#include <map>
#include <iostream>
#include "json.hpp"

int main() {
    using boost::get;

    std::string json_string{
        "{\"names\": ["
        "  {\"name\": \"Chris\"},"
        "  {\"name\": \"Mark\"},"
        "  {\"name\": \"Scott\"}"
        "]}"};
    auto data = json::parse(json_string);

    for(auto& name_item: get<json::array>(get<json::map>(data)["names"]))
        std::cout << get<std::string>(get<json::map>(name_item)["name"]) << std::endl;

    return 0;
}

and the errors I get are below (note - I removed some of the warnings about deprecated boost files to keep the log below minimal)


Build target templator of project templator with configuration Debug

CompileC DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/Objects-normal/x86_64/main.o templator/main.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/ajay/Documents/templator
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++11 -stdlib=libc++ -fmodules -fmodules-cache-path=/Users/ajay/Documents/templator/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/ajay/Documents/templator/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -O0 -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Werror=return-type -Wunreachable-code -Werror=deprecated-objc-isa-usage -Werror=objc-root-class -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.11 -g -fvisibility-inlines-hidden -Wno-sign-conversion -iquote /Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/templator-generated-files.hmap -I/Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/templator-own-target-headers.hmap -I/Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/templator-all-target-headers.hmap -iquote /Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/templator-project-headers.hmap -I/Users/ajay/Documents/templator/DerivedData/templator/Build/Products/Debug/include -Iheaders -Iheaders/dist -Iheaders/json -Iheaders/mstch -Iheaders/dist/json -I/usr/local/include -I/Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/DerivedSources/x86_64 -I/Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/DerivedSources -F/Users/ajay/Documents/templator/DerivedData/templator/Build/Products/Debug -MMD -MT dependencies -MF /Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/Objects-normal/x86_64/main.d --serialize-diagnostics /Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/Objects-normal/x86_64/main.dia -c /Users/ajay/Documents/templator/templator/main.cpp -o /Users/ajay/Documents/templator/DerivedData/templator/Build/Intermediates/templator.build/Debug/templator.build/Objects-normal/x86_64/main.o

         ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:1:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:439:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:627:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/utility:299:15: error: no viable overloaded '='
        first = __p.first;
        ~~~~~ ^ ~~~~~~~~~
In file included from /Users/ajay/Documents/templator/templator/main.cpp:2:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:646:15: note: in instantiation of member function 'std::__1::pair<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >::operator=' requested here
        {__nc = __v.__cc; return *this;}
              ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:2:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:438:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tree:1249:35: note: in instantiation of member function 'std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >::operator=' requested here
                __cache->__value_ = *__first;
                                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tree:1190:9: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, std::__1::__map_value_compare<const std::__1::basic_string<char>, std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, std::__1::less<const std::__1::basic_string<char> >, true>, std::__1::allocator<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >::__assign_multi<std::__1::__tree_const_iterator<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, std::__1::__tree_node<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, void *> *, long> >' requested here
        __assign_multi(__t.begin(), __t.end());
        ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:2:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/map:934:21: note: in instantiation of member function 'std::__1::__tree<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, std::__1::__map_value_compare<const std::__1::basic_string<char>, std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > >, std::__1::less<const std::__1::basic_string<char> >, true>, std::__1::allocator<std::__1::__value_type<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >::operator=' requested here
            __tree_ = __m.__tree_;
                    ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:4:
In file included from /Users/ajay/Documents/templator/headers/json.hpp:1:
In file included from /usr/local/include/boost/spirit/include/qi.hpp:16:
In file included from /usr/local/include/boost/spirit/home/qi.hpp:14:
In file included from /usr/local/include/boost/spirit/home/qi/action.hpp:14:
In file included from /usr/local/include/boost/spirit/home/qi/action/action.hpp:14:
In file included from /usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:15:
In file included from /usr/local/include/boost/spirit/home/qi/domain.hpp:16:
In file included from /usr/local/include/boost/spirit/home/support/info.hpp:15:
In file included from /usr/local/include/boost/variant/recursive_variant.hpp:17:
In file included from /usr/local/include/boost/variant/detail/enable_recursive.hpp:34:
/usr/local/include/boost/variant/recursive_wrapper.hpp:143:17: note: in instantiation of member function 'std::__1::map<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >::operator=' requested here
    this->get() = rhs;
                ^
/usr/local/include/boost/variant/recursive_wrapper.hpp:60:9: note: (skipping 44 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
        assign( rhs.get() );
        ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:4:
In file included from /Users/ajay/Documents/templator/headers/json.hpp:1:
In file included from /usr/local/include/boost/spirit/include/qi.hpp:16:
In file included from /usr/local/include/boost/spirit/home/qi.hpp:21:
In file included from /usr/local/include/boost/spirit/home/qi/nonterminal.hpp:14:
/usr/local/include/boost/spirit/home/qi/nonterminal/rule.hpp:183:19: note: in instantiation of function template specialization 'boost::function<bool (std::__1::__wrap_iter<const char *> &, const std::__1::__wrap_iter<const char *> &, boost::spirit::context<boost::fusion::cons<std::__1::vector<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::allocator<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > &, boost::fusion::nil_>, boost::fusion::vector<> > &, const boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> > &)>::operator=<boost::spirit::qi::detail::parser_binder<boost::spirit::qi::sequence<boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::cons<boost::spirit::qi::optional<boost::spirit::qi::list<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > (), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> > >, boost::fusion::cons<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, boost::fusion::nil_> > > >, mpl_::bool_<false> > >' requested here
            lhs.f = detail::bind_parser<Auto>(
                  ^
/usr/local/include/boost/spirit/home/qi/nonterminal/rule.hpp:221:13: note: in instantiation of function template specialization 'boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, std::__1::vector<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::allocator<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > (), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type>::define<mpl_::bool_<false>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0>, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::negate, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > (), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0> >, 2> &>, 1> &>, 2> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0> >, 2> >' requested here
            define<mpl::false_>(*this, expr, traits::matches<qi::domain, Expr>());
            ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:4:
/Users/ajay/Documents/templator/headers/json.hpp:39:17: note: in instantiation of function template specialization 'boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, std::__1::vector<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::allocator<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > (), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type>::operator=<boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0>, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::negate, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > (), boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::ascii> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0> >, 2> &>, 1> &>, 2> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0> >, 2> >' requested here
    array_rule  = '[' >> -(value_rule % ',') >> ']';
                ^
/Users/ajay/Documents/templator/headers/json.hpp:99:72: note: in instantiation of member function 'json::details::json_grammar<std::__1::__wrap_iter<const char *>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::map<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >, std::__1::vector<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::allocator<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >::json_grammar' requested here
  details::json_grammar<std::string::const_iterator, Node, Map, Array> json;
                                                                       ^
/Users/ajay/Documents/templator/templator/main.cpp:15:20: note: in instantiation of function template specialization 'json::parse<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::map<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >, std::__1::vector<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > >, std::__1::allocator<boost::variant<boost::detail::variant::recursive_flag<nullptr_t>, std::__1::basic_string<char>, int, double, bool, std::__1::map<const std::__1::basic_string<char>, boost::recursive_variant_, std::__1::less<const std::__1::basic_string<char> >, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::recursive_variant_> > >, std::__1::vector<boost::recursive_variant_, std::__1::allocator<boost::recursive_variant_> > > > > >' requested here
        auto data = json::parse(json_string);
                          ^
In file included from /Users/ajay/Documents/templator/templator/main.cpp:1:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1376:19: note: candidate function not viable: 'this' argument has type 'const std::__1::basic_string<char>', but method is not marked const
    basic_string& operator=(const basic_string& __str);
                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1379:19: note: candidate function not viable: 'this' argument has type 'const std::__1::basic_string<char>', but method is not marked const
    basic_string& operator=(basic_string&& __str)
                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1383:45: note: candidate function not viable: 'this' argument has type 'const std::__1::basic_string<char>', but method is not marked const
    _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}
                                            ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1384:19: note: candidate function not viable: 'this' argument has type 'const std::__1::basic_string<char>', but method is not marked const
    basic_string& operator=(value_type __c);
                  ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/string:1387:19: note: candidate function not viable: 'this' argument has type 'const std::__1::basic_string<char>', but method is not marked const
    basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}
                  ^
3 warnings and 1 error generated.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.