エラー: システムで問題が発生しました(#500) - 1 秒後に再試行します…
なんてエラーが出たんですわ。
くそ長ぇ〜よ (´;ω;`)ブワッ [ 1%] Building CXX object Src/Connection/Json/CMakeFiles/GooglePlusJsonParser.dir/JsonParser.cpp.obj JsonParser.cpp C:\Downloads\boost_1_52_0\boost/spirit/home/support/container.hpp(117) : error C2955: 'boost::Container' : クラス テンプレート を使用するには テンプレート 引数リストが必要です C:\Downloads\boost_1_52_0\boost/concept_check.hpp(642) : 'boost::Container' の宣言を確認してください。 C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/pass_container.hpp(296) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::traits::container_value<Container>' の参照を確認してください with [ Container=wchar_t ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/pass_container.hpp(331) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::pass_container<F,Attr,Sequence>::dispatch_attribute<Component>(const Component &,boost::mpl::true_) const' の参照を確認してください with [ F=fail_function, Attr=wchar_t, Sequence=boost::mpl::false_, Component=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/operator/kleene.hpp(65) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::pass_container<F,Attr,Sequence>::operator ()<Subject>(const Component &) const' の参照を確認してください with [ F=fail_function, Attr=wchar_t, Sequence=boost::mpl::false_, Subject=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>, Component=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/operator/kleene.hpp(84) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::kleene<Subject>::parse_container<boost::spirit::qi::detail::pass_container<F,Attr,Sequence>>(boost::spirit::qi::detail::pass_container<F,Attr,Sequence>) const' の参照を確認してください with [ Subject=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>, F=fail_function, Attr=wchar_t, Sequence=boost::mpl::false_ ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/directive/lexeme.hpp(64) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::kleene<Subject>::parse<Iterator,Context,boost::spirit::qi::detail::unused_skipper<Skipper>,Attribute>(Iterator &,const Iterator &,Context &,const boost::spirit::qi::detail::unused_skipper<Skipper> &,Attribute &) const' の参照を確認してください with [ Subject=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=wchar_t ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/expect_function.hpp(50) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::lexeme_directive<Subject>::parse<Iterator,Context,Skipper,Attribute>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &) const' の参照を確認してください with [ Subject=boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=wchar_t ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/pass_container.hpp(263) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::expect_function<Iterator,Context,Skipper,Exception>::operator ()<Component,wchar_t>(const Component &,Attribute &) const' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Exception=boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>, Component=const boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>, Attribute=wchar_t ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/pass_container.hpp(311) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::pass_container<F,Attr,Sequence>::dispatch_container<Component>(const Component &,boost::mpl::false_) const' の参照を確認してください with [ F=boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>, Attr=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Sequence=boost::mpl::true_, Component=const boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/pass_container.hpp(331) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::pass_container<F,Attr,Sequence>::dispatch_attribute<Component>(const Component &,boost::mpl::true_) const' の参照を確認してください with [ F=boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>, Attr=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Sequence=boost::mpl::true_, Component=const boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(37) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::pass_container<F,Attr,Sequence>::operator ()<const T>(const Component &) const' の参照を確認してください with [ F=boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>, Attr=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Sequence=boost::mpl::true_, T=const boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>, Component=const boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(42) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::linear_any<boost::fusion::cons_iterator<Cons>,Last,F>(const First &,const Last &,F &,boost::mpl::false_)' の参照を確認してください with [ Cons=const boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>, Last=boost::fusion::cons_iterator<const boost::fusion::nil>, F=boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::mpl::true_>, First=boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(55) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::linear_any<boost::fusion::cons_iterator<Cons>,boost::fusion::cons_iterator<const boost::fusion::nil>,F>(const First &,const Last &,F &,boost::mpl::false_)' の参照を確認してください with [ Cons=const boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::mpl::true_>, First=boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>, Last=boost::fusion::cons_iterator<const boost::fusion::nil> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/any.hpp(30) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::any<Sequence,F,boost::fusion::forward_traversal_tag>(const Sequence &,F,Tag)' の参照を確認してください with [ Sequence=boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::pass_container<boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::mpl::true_>, Tag=boost::fusion::forward_traversal_tag ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/operator/sequence_base.hpp(108) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::any<Elements,boost::spirit::qi::detail::pass_container<F,Attr,Sequence>>(const boost::fusion::cons<Car,Cdr> &,boost::spirit::qi::detail::pass_container<F,Attr,Sequence>)' の参照を確認してください with [ Elements=boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::expect_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,boost::spirit::qi::expectation_failure<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>>, Attr=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Sequence=boost::mpl::true_, Car=boost::spirit::qi::literal_string<const wchar_t (&)[2],true>, Cdr=boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/operator/sequence_base.hpp(124) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::sequence_base<Derived,Elements>::parse_impl<Iterator,Context,Skipper,Attribute>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &,boost::mpl::true_) const' の参照を確認してください with [ Derived=boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>, Elements=boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/alternative_function.hpp(70) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::sequence_base<Derived,Elements>::parse<Iterator,Context,Skipper,Attribute>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &) const' の参照を確認してください with [ Derived=boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>, Elements=boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/alternative_function.hpp(153) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::alternative_function<Iterator,Context,Skipper,Attribute>::call<Component>(const Component &,boost::mpl::true_) const' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Component=const boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/detail/alternative_function.hpp(170) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::alternative_function<Iterator,Context,Skipper,Attribute>::call_unused<Component>(const Component &,boost::mpl::true_) const' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Component=const boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(37) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::alternative_function<Iterator,Context,Skipper,Attribute>::operator ()<const T>(const Component &) const' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, T=const boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>, Component=const boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(42) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::linear_any<boost::fusion::cons_iterator<Cons>,Last,F>(const First &,const Last &,F &,boost::mpl::false_)' の参照を確認してください with [ Cons=const boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>, Last=boost::fusion::cons_iterator<const boost::fusion::nil>, F=boost::spirit::qi::detail::alternative_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>, First=boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/detail/any.hpp(55) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::linear_any<boost::fusion::cons_iterator<Cons>,boost::fusion::cons_iterator<const boost::fusion::nil>,F>(const First &,const Last &,F &,boost::mpl::false_)' の参照を確認してください with [ Cons=const boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::alternative_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>, First=boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Last=boost::fusion::cons_iterator<const boost::fusion::nil> ] C:\Downloads\boost_1_52_0\boost/fusion/algorithm/query/any.hpp(30) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::detail::any<Sequence,F,boost::fusion::forward_traversal_tag>(const Sequence &,F,Tag)' の参照を確認してください with [ Sequence=boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::alternative_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>, Tag=boost::fusion::forward_traversal_tag ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/operator/alternative.hpp(79) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::fusion::any<Elements,boost::spirit::qi::detail::alternative_function<Iterator,Context,Skipper,Attribute>>(const Sequence &,F)' の参照を確認してください with [ Elements=boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Sequence=boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>, F=boost::spirit::qi::detail::alternative_function<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>,boost::spirit::unused_type,std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp(43) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::alternative<Elements>::parse<Iterator,Context,Skipper,T>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &) const' の参照を確認してください with [ Elements=boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type, T=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Attribute=std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp(53) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::parser_binder<Parser,Auto>::call<Iterator,Skipper,Context>(Iterator &,const Iterator &,Context &,const Skipper &,boost::mpl::false_) const' の参照を確認してください with [ Parser=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Auto=boost::mpl::false_, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Skipper=boost::spirit::unused_type, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(132) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::detail::parser_binder<Parser,Auto>::operator ()<Iterator,boost::spirit::unused_type,boost::spirit::context<Attributes,Locals>>(Iterator &,const Iterator &,Context &,const Skipper &) const' の参照を確認してください with [ Parser=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Auto=boost::mpl::false_, Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, Attributes=boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>, Locals=boost::fusion::vector0<>, Context=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>>, Skipper=boost::spirit::unused_type ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(126): クラス テンプレート のメンバー関数 'bool boost::detail::function::function_obj_invoker4<FunctionObj,R,T0,T1,T2,T3>::invoke(boost::detail::function::function_buffer &,T0,T1,T2,T3)' のコンパイル中 with [ FunctionObj=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_>, R=bool, T0=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T1=const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T2=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &, T3=const boost::spirit::unused_type & ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(934) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::function::function_obj_invoker4<FunctionObj,R,T0,T1,T2,T3>' の参照を確認してください with [ FunctionObj=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_>, R=bool, T0=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T1=const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T2=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &, T3=const boost::spirit::unused_type & ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(722) : コンパイルされたクラスの テンプレート のインスタンス化 'void boost::function4<R,T0,T1,T2,T3>::assign_to<Functor>(Functor)' の参照を確認してください with [ R=bool, T0=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T1=const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T2=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &, T3=const boost::spirit::unused_type &, Functor=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_> ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(1070) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::function4<R,T0,T1,T2,T3>::function4<boost::spirit::qi::detail::parser_binder<Parser,Auto>>(Functor,int)' の参照を確認してください with [ R=bool, T0=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T1=const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &, T2=boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &, T3=const boost::spirit::unused_type &, Parser=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Auto=boost::mpl::false_, Functor=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_> ] C:\Downloads\boost_1_52_0\boost/function/function_template.hpp(1124) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::function<Signature>::function<boost::spirit::qi::detail::parser_binder<Parser,Auto>>(Functor,int)' の参照を確認してください with [ Signature=bool (std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &,const boost::spirit::unused_type &), Parser=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Auto=boost::mpl::false_, Functor=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/nonterminal/rule.hpp(183) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::function<Signature> &boost::function<Signature>::operator =<boost::spirit::qi::detail::parser_binder<Parser,Auto>>(Functor)' の参照を確認してください with [ Signature=bool (std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,const std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::spirit::context<boost::fusion::cons<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> &,boost::fusion::nil>,boost::fusion::vector0<>> &,const boost::spirit::unused_type &), Parser=boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>, Auto=boost::mpl::false_, Functor=boost::spirit::qi::detail::parser_binder<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::plus<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>>,boost::fusion::cons<boost::spirit::qi::eps_parser,boost::fusion::nil>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::cons<boost::spirit::qi::expect<boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::cons<boost::spirit::qi::lexeme_directive<boost::spirit::qi::kleene<boost::spirit::qi::alternative<boost::fusion::cons<boost::spirit::qi::reference<boost::spirit::qi::symbols<const wchar_t,wchar_t>>,boost::fusion::cons<boost::spirit::qi::difference<boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::char_,boost::spirit::char_encoding::standard_wide>>,boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard_wide,false,false>>,boost::fusion::nil>>>>>,boost::fusion::cons<boost::spirit::qi::literal_string<const wchar_t (&)[2],true>,boost::fusion::nil>>>>,boost::fusion::nil>>>>,boost::mpl::false_> ] C:\Downloads\boost_1_52_0\boost/spirit/home/qi/nonterminal/rule.hpp(220) : コンパイルされたクラスの テンプレート のインスタンス化 'void boost::spirit::qi::rule<Iterator,T1>::define<boost::mpl::false_,Expr>(boost::spirit::qi::rule<Iterator,T1> &,const Expr &,boost::mpl::true_)' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, T1=std::wstring (void), Expr=boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::unary_plus,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>,0> &>,1> &,const boost::spirit::terminal<boost::spirit::tag::eps> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> ] C:\Downloads\Gplus\GooglePlusLibrary\Src\Json/JsonGrammar.hpp(78) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::qi::rule<Iterator,T1> &boost::spirit::qi::rule<Iterator,T1>::operator =<boost::proto::exprns_::expr<Tag,Args,Arity>>(const Expr &)' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>, T1=std::wstring (void), Tag=boost::proto::tagns_::tag::bitwise_or, Args=boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::unary_plus,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>,0> &>,1> &,const boost::spirit::terminal<boost::spirit::tag::eps> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>, Arity=2, Expr=boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::unary_plus,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::alnum,boost::spirit::char_encoding::standard>>,0> &>,1> &,const boost::spirit::terminal<boost::spirit::tag::eps> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,boost::spirit::qi::rule<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>,std::wstring (void)> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::greater,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::tag::lexeme>,0> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::bitwise_or,boost::proto::argsns_::list2<Gplusnasite::GooglePlusLibrary::JsonGrammar<std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>>::javascript_escape_wchar_t_ &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::minus,boost::proto::argsns_::list2<const boost::spirit::terminal<boost::spirit::tag::standard_wide::char_> ,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::standard_wide::char_,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> &>,1> &>,2> &>,2> &,const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,boost::fusion::vector1<const wchar_t (&)[2]>>>,0> &>,2> &>,2> ] C:\Downloads\Gplus\GooglePlusLibrary\Src\Json/JsonGrammar.hpp(62): クラス テンプレート のメンバー関数 'Gplusnasite::GooglePlusLibrary::JsonGrammar<Iterator>::JsonGrammar(void)' のコンパイル中 with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ] C:\Downloads\Gplus\GooglePlusLibrary\Src\Json\JsonParser.cpp(56) : コンパイルされたクラスの テンプレート のインスタンス化 'Gplusnasite::GooglePlusLibrary::JsonGrammar<Iterator>' の参照を確認してください with [ Iterator=std::_String_const_iterator<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>> ] C:\Downloads\boost_1_52_0\boost/spirit/home/support/container.hpp(118) : fatal error C1903: 直前のエラーを修復できません。コンパイルを中止します。もうね…。boost::pheonix::function とか、boost::proto とか絡みまくりでね…。どこで引っかかってるのか、さっぱりわかりませんわ。これでもね、問題を最小化した後なんですわ。JsonGrammar の template 引数に、Skipper として、boost::spirit::standard_wide::space_type を指定して、メンバの各ルールも qi::rule<Iterator, std::wstring(), boost::spirit::standard_wide::space_type> なんてやってたら、boost::sprit の FAQ
error C2664: 'bool boost::function4<R,T0,T1,T2,T3>::operator ()(T0,T1,T2,T3) const' : cannot convert parameter 4 from '...' to '...'なんてエラーに引っかかたんですわ。
どんなソースをコンパイルしたら、こんなエラーになるか?つーとね…。下のコードですわ。 まぁ、下のコードも wstring_rule 中の utf_escape_rule を取り除けば大丈夫なんですけどね。
#pragma once #ifdef GOOGLEPLUSJSON_NO_WARNINGS #ifdef _MSC_VER #pragma warning (disable:4819) #endif #endif #include <Json/JsonObject.hpp> #include <Json/JsonMember.hpp> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/phoenix.hpp> //#include <boost/regex/pending/unicode_iterator.hpp> namespace Gplusnasite { namespace GooglePlusLibrary { namespace { namespace qi = boost::spirit::qi; namespace spc = boost::spirit::standard_wide; namespace phoenix = boost::phoenix; #define ON_QI_ERROR(tag) \ qi::on_error<qi::fail>(tag, \ std::cout << phoenix::val("Error Expecting ") \ << qi::labels::_4 \ << phoenix::val(" here: \"") \ << phoenix::construct<std::string>(qi::labels::_3, qi::labels::_2) \ << phoenix::val("\"") \ << std::endl \ ) } namespace detail { struct push_utf8 { template <typename Scanner, typename CharT> struct result { typedef void type; }; void operator()(std::wstring& utf8, ::boost::uint32_t code_point) const { std::back_insert_iterator<std::wstring> utf8_iter(utf8); //typedef std::back_insert_iterator<std::string> insert_iter; //insert_iter out_iter(utf8); //boost::utf8_output_iterator<insert_iter> utf8_iter(out_iter); *utf8_iter++ = code_point; } }; } template <typename Iterator> struct JsonGrammar : qi::grammar<Iterator, JsonObject()> { public: JsonGrammar() : JsonGrammar::base_type(expression,"expression") { //phoenix::function<detail::push_utf8> push_utf8; //qi::uint_parser< ::boost::uint32_t, 16> hex16; //hex_escape_base = (L'u' >> hex16); //[push_utf8(qi::_r1, qi::_1)]; //hex_escape_rule = hex_escape_base(qi::_val); utf_escape_rule = qi::lit(L"\\u") >> qi::hex; //hex_escape_rule; funny_escape_rule = qi::lit(L"\'u") >> qi::hex; //hex_escape_rule; wstring_rule = ( +(qi::alnum) > qi::eps // | (qi::lit(L"\"") > qi::lexeme[funny_escape_rule > *(funny_escape_wchar_t_rule | funny_escape_rule | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\"")))] > qi::lit(L"\"")) | (qi::lit(L"\"") > qi::lexeme[*(javascript_escape_wchar_t_rule | utf_escape_rule | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\"")))] > qi::lit(L"\"")) | (qi::lit(L"\'") > qi::lexeme[*(javascript_escape_wchar_t_rule /*| utf_escape_rule*/ | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\'")))] > qi::lit(L"\'")) ); json_wstring_rule = wstring_rule[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; int_rule = qi::int_[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; real_rule = qi::double_[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; bool_rule = bool_wchar_t_rule[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; null_rule = (qi::lit(L"null") | qi::eps); element_rule = (real_rule | int_rule | bool_rule | json_wstring_rule | array_rule | object_rule | null_rule); array_inner_rule = element_rule[phoenix::push_back(qi::_val, qi::_1)] > *(qi::lit(L",") > element_rule[phoenix::push_back(qi::_val, qi::_1)]); member_rule = (wstring_rule > qi::lit(L":") > element_rule)[qi::_val = phoenix::construct<JsonMember>(qi::_1,qi::_2)]; object_inner_rule = member_rule[phoenix::push_back(qi::_val, qi::_1)] > *(qi::lit(L",") > member_rule[phoenix::push_back(qi::_val, qi::_1)]); object_rule = (qi::lit(L"{") > object_inner_rule > qi::lit(L"}"))[qi::_val = phoenix::construct<JsonObject>(qi::_1)] | (qi::lit(L"{") > qi::lit(L"}")); // Same as (-object_rule_inner) array_rule = (qi::lit(L"[") > array_inner_rule > qi::lit(L"]"))[qi::_val = phoenix::construct<JsonObject>(qi::_1)] // Force to create zero length array. (Nor null_rule) | (qi::lit(L"[") > qi::lit(L"]"))[qi::_val = phoenix::construct<JsonObject>(zero_array)]; json_rule = object_rule | array_rule; hex_rule = qi::hex; expression = qi::omit[hex_rule ^ qi::lit(L")]}'")] || json_rule; wstring_rule.name("wstring"); int_rule.name("int"); real_rule.name("real"); bool_rule.name("bool"); null_rule.name("null"); element_rule.name("element"); array_inner_rule.name("array_inner"); member_rule.name("member"); object_inner_rule.name("object_inner"); object_rule.name("object"); array_rule.name("array"); ON_QI_ERROR(wstring_rule); ON_QI_ERROR(int_rule); ON_QI_ERROR(real_rule); ON_QI_ERROR(bool_rule); ON_QI_ERROR(null_rule); ON_QI_ERROR(element_rule); ON_QI_ERROR(array_inner_rule); ON_QI_ERROR(member_rule); ON_QI_ERROR(object_inner_rule); ON_QI_ERROR(object_rule); } private: struct bool_wchar_t_ : qi::symbols<wchar_t const,bool> { bool_wchar_t_() { add (L"true" , true) (L"false", false) ; } } bool_wchar_t_rule; struct javascript_escape_wchar_t_ : qi::symbols<wchar_t const,wchar_t> { javascript_escape_wchar_t_() { add (L"\\b", '\b') (L"\\t", '\t') (L"\\v", '\v') (L"\\n", '\n') (L"\\r", '\r') (L"\\f", '\f') (L"\\\'", '\'') (L"\\\"", '\"') (L"\\\\", '\'') (L"\\0", '\0') ; } } javascript_escape_wchar_t_rule; struct funny_escape_wchar_t_ : qi::symbols<wchar_t const,wchar_t> { funny_escape_wchar_t_() { add (L"\'b", '\b') (L"\'t", '\t') (L"\'v", '\v') (L"\'n", '\n') (L"\'r", '\r') (L"\'f", '\f') (L"\'\'", '\'') (L"\'\"", '\"') (L"\'\\", '\'') (L"\'0", '\0') ; } } funny_escape_wchar_t_rule; //qi::rule<Iterator, void(std::wstring&)> hex_escape_base; //qi::rule<Iterator, std::wstring()> hex_escape_rule; qi::rule<Iterator, std::wstring()> utf_escape_rule; qi::rule<Iterator, std::wstring()> funny_escape_rule; qi::rule<Iterator, std::wstring()> wstring_rule; qi::rule<Iterator, std::wstring()> hex_rule; qi::rule<Iterator, JsonObject()> json_wstring_rule; qi::rule<Iterator, JsonObject()> int_rule; qi::rule<Iterator, JsonObject()> real_rule; qi::rule<Iterator, std::vector<JsonObject>()> array_inner_rule; qi::rule<Iterator, JsonObject()> array_rule; qi::rule<Iterator, JsonObject()> element_rule; qi::rule<Iterator, JsonMember()> member_rule; qi::rule<Iterator, std::vector<JsonMember>()> object_inner_rule; qi::rule<Iterator, JsonObject()> object_rule; qi::rule<Iterator, JsonObject()> bool_rule; qi::rule<Iterator, JsonObject()> null_rule; qi::rule<Iterator, JsonObject()> json_rule; qi::rule<Iterator, JsonObject()> expression; std::vector<JsonObject> zero_array; }; }// namespace GooglePlusLibrary }// namespace Gplusnasite2013/02/10 追記: 結局 proto の問題だったような気がします。コンパイラが通らないから、外していた spc::space_type は、パースがうまく行かなくなるので戻しました。 現在、こんな感じに
#pragma once #ifdef GOOGLEPLUSJSON_NO_WARNINGS #ifdef _MSC_VER #pragma warning (disable:4819) #endif #endif #include <Json/JsonObject.hpp> #include <Json/JsonMember.hpp> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/phoenix.hpp> //#include <boost/regex/pending/unicode_iterator.hpp> namespace Gplusnasite { namespace GooglePlusLibrary { namespace { namespace qi = boost::spirit::qi; namespace spc = boost::spirit::standard_wide; namespace phoenix = boost::phoenix; #define ON_QI_ERROR(tag) \ qi::on_error<qi::fail>(tag, \ std::cout << phoenix::val("Error Expecting ") \ << qi::labels::_4 \ << phoenix::val(" here: \"") \ << phoenix::construct<std::string>(qi::labels::_3, qi::labels::_2) \ << phoenix::val("\"") \ << std::endl \ ) } namespace detail { struct push_utf8 { template <typename Scanner, typename CharT> struct result { typedef void type; }; void operator()(std::wstring& utf8, ::boost::uint32_t code_point) const { std::back_insert_iterator<std::wstring> utf8_iter(utf8); //typedef std::back_insert_iterator<std::string> insert_iter; //insert_iter out_iter(utf8); //boost::utf8_output_iterator<insert_iter> utf8_iter(out_iter); *utf8_iter++ = code_point; } }; } #define UTF_ESCAPE_RULE (qi::lit(L"\\u") > hex16) #define FUNNY_ESCAPE_RULE (qi::lit(L"\'u") > hex16) template <typename Iterator> struct JsonGrammar : qi::grammar<Iterator, JsonObject(), spc::space_type> { public: JsonGrammar() : JsonGrammar::base_type(expression,"expression") { //phoenix::function<detail::push_utf8> push_utf8; qi::uint_parser<boost::uint16_t, 16> hex16; //hex_escape_base = (L'u' >> hex16)[push_utf8(qi::_r1, qi::_1)]; //hex_escape_rule = hex_escape_base(qi::_val); //utf_escape_rule = qi::lit(L"\'u") > hex16; //funny_escape_rule = qi::lit(L"\'u") > hex16; wstring_rule = ( +(qi::alnum) > qi::eps | (qi::lit(L"\"") >> qi::lexeme[FUNNY_ESCAPE_RULE > *(funny_escape_wchar_t_rule | FUNNY_ESCAPE_RULE | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\"")))] > qi::lit(L"\"")) | (qi::lit(L"\"") > qi::lexeme[*(javascript_escape_wchar_t_rule | UTF_ESCAPE_RULE | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\"")))] > qi::lit(L"\"")) | (qi::lit(L"\'") > qi::lexeme[*(javascript_escape_wchar_t_rule | UTF_ESCAPE_RULE | (qi::standard_wide::char_ - qi::standard_wide::char_(L"\'")))] > qi::lit(L"\'")) ); json_wstring_rule = wstring_rule[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; int_rule = qi::int_[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; real_rule = qi::double_[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; bool_rule = bool_wchar_t_rule[qi::_val = phoenix::construct<JsonObject>(qi::_1)]; null_rule = (qi::lit(L"null") | qi::eps); element_rule = (real_rule | int_rule | bool_rule | json_wstring_rule | array_rule | object_rule | null_rule); array_inner_rule = element_rule[phoenix::push_back(qi::_val, qi::_1)] > *(qi::lit(L",") > element_rule[phoenix::push_back(qi::_val, qi::_1)]); member_rule = (wstring_rule > qi::lit(L":") > element_rule)[qi::_val = phoenix::construct<JsonMember>(qi::_1,qi::_2)]; object_inner_rule = member_rule[phoenix::push_back(qi::_val, qi::_1)] > *(qi::lit(L",") > member_rule[phoenix::push_back(qi::_val, qi::_1)]); object_rule = (qi::lit(L"{") > object_inner_rule > qi::lit(L"}"))[qi::_val = phoenix::construct<JsonObject>(qi::_1)] | (qi::lit(L"{") > qi::lit(L"}")); // Same as (-object_rule_inner) array_rule = (qi::lit(L"[") > array_inner_rule > qi::lit(L"]"))[qi::_val = phoenix::construct<JsonObject>(qi::_1)] // Force to create zero length array. (Nor null_rule) | (qi::lit(L"[") > qi::lit(L"]"))[qi::_val = phoenix::construct<JsonObject>(zero_array)]; json_rule = object_rule | array_rule; hex_rule = qi::hex; expression = qi::omit[hex_rule ^ qi::lit(L")]}'")] || json_rule; wstring_rule.name("wstring"); int_rule.name("int"); real_rule.name("real"); bool_rule.name("bool"); null_rule.name("null"); element_rule.name("element"); array_inner_rule.name("array_inner"); member_rule.name("member"); object_inner_rule.name("object_inner"); object_rule.name("object"); array_rule.name("array"); ON_QI_ERROR(wstring_rule); ON_QI_ERROR(int_rule); ON_QI_ERROR(real_rule); ON_QI_ERROR(bool_rule); ON_QI_ERROR(null_rule); ON_QI_ERROR(element_rule); ON_QI_ERROR(array_inner_rule); ON_QI_ERROR(member_rule); ON_QI_ERROR(object_inner_rule); ON_QI_ERROR(object_rule); } private: struct bool_wchar_t_ : qi::symbols<wchar_t const,bool> { bool_wchar_t_() { add (L"true" , true) (L"false", false) ; } } bool_wchar_t_rule; struct javascript_escape_wchar_t_ : qi::symbols<wchar_t const,wchar_t> { javascript_escape_wchar_t_() { add (L"\\b", '\b') (L"\ ", ' ') (L"\\v", '\v') (L"\\n", '\n') (L"\\r", '\r') (L"\\f", '\f') (L"\\\'", '\'') (L"\\\"", '\"') (L"\\\\", '\'') (L"\\0", '\0') ; } } javascript_escape_wchar_t_rule; struct funny_escape_wchar_t_ : qi::symbols<wchar_t const,wchar_t> { funny_escape_wchar_t_() { add (L"\'b", '\b') (L"\'t", ' ') (L"\'v", '\v') (L"\'n", '\n') (L"\'r", '\r') (L"\'f", '\f') (L"\'\'", '\'') (L"\'\"", '\"') (L"\'\\", '\'') (L"\'0", '\0') ; } } funny_escape_wchar_t_rule; //qi::rule<Iterator, void(std::wstring&), spc::space_type> hex_escape_base; //qi::rule<Iterator, std::wstring(), spc::space_type> hex_escape_rule; //qi::rule<Iterator, std::wstring(), spc::space_type> utf_escape_rule; //qi::rule<Iterator, std::wstring(), spc::space_type> funny_escape_rule; qi::rule<Iterator, std::wstring(), spc::space_type> wstring_rule; qi::rule<Iterator, std::wstring(), spc::space_type> hex_rule; qi::rule<Iterator, JsonObject(), spc::space_type> json_wstring_rule; qi::rule<Iterator, JsonObject(), spc::space_type> int_rule; qi::rule<Iterator, JsonObject(), spc::space_type> real_rule; qi::rule<Iterator, std::vector<JsonObject>(), spc::space_type> array_inner_rule; qi::rule<Iterator, JsonObject(), spc::space_type> array_rule; qi::rule<Iterator, JsonObject(), spc::space_type> element_rule; qi::rule<Iterator, JsonMember(), spc::space_type> member_rule; qi::rule<Iterator, std::vector<JsonMember>(), spc::space_type> object_inner_rule; qi::rule<Iterator, JsonObject(), spc::space_type> object_rule; qi::rule<Iterator, JsonObject(), spc::space_type> bool_rule; qi::rule<Iterator, JsonObject(), spc::space_type> null_rule; qi::rule<Iterator, JsonObject(), spc::space_type> json_rule; qi::rule<Iterator, JsonObject(), spc::space_type> expression; std::vector<JsonObject> zero_array; }; }// namespace GooglePlusLibrary }// namespace Gplusnasite
0 件のコメント:
コメントを投稿