-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
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.
Metadata
Metadata
Assignees
Labels
No labels