2013年1月29日火曜日

くそ長ぇよ(´;ω;`)

以下のようなポストを Google+ にしようと思ったら、
エラー: システムで問題が発生しました(#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 Gplusnasite
2013/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 件のコメント: