Skip to content

Trouble compiling the example code on OSX #1

Description

@apanagar

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.


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions