Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h" // empty header
- #include <iostream>
- #pragma warning(disable: 4819)
- #include <boost/spirit/include/qi.hpp>
- #include <boost/spirit/include/phoenix.hpp>
- #pragma warning(default: 4819)
- using namespace std;
- using namespace boost;
- using namespace boost::spirit;
- template <typename InhAttrT>
- struct TestGrammar
- : qi::grammar < string::iterator, int(InhAttrT), standard::space_type > {
- qi::rule <string::iterator, int(InhAttrT), standard::space_type> start;
- TestGrammar() : base_type(start) {
- start = int_;
- }
- };
- template <typename InhAttrT>
- void Test(InhAttrT& attr) {
- TestGrammar<InhAttrT> g;
- string src = "100";
- auto begin = src.begin();
- int result;
- if (qi::phrase_parse(begin, src.end(), g(attr), standard::space, result)) {
- cout << result << endl;
- }
- }
- struct MyStruct {
- int number;
- };
- void InhAttrTest() {
- MyStruct d;
- d.number = 100;
- Test<MyStruct>(d);
- /*
- 上記インスタンス化で以下のコンパイルエラーが発生する
- boost\utility\result_of.hpp:186
- error C2903: 'result' : シンボルはクラス テンプレート でも関数 テンプレート でもありません
- boost\utility\result_of.hpp:186
- error C2039: 'result' : 'MyStruct' のメンバーではありません。
- boost\utility\result_of.hpp:186
- error C2504: 'result' : 定義されていない基底クラスが宣言されています。
- boost\utility\result_of.hpp:186
- error C2143: 構文エラー : ',' が '<' の前にありません。
- boost\spirit\home\support\nonterminal\expand_arg.hpp:38
- error C2039: 'type' : 'boost::mpl::eval_if<boost::mpl::or_<boost::is_scalar<T>,boost::spirit::traits::is_string<T>,boost::mpl::false_,boost::mpl::false_,boost::mpl::false_>,boost::mpl::identity<const T &>,boost::result_of<T (boost::spirit::unused_type,Context)>>' のメンバーではありません。
- boost\fusion\container\list\detail\build_cons.hpp:45
- error C3203: 'type' : 非特殊 クラス テンプレート は、テンプレート 引数として テンプレート パラメーター 'Car' に使用できません。実際の型を指定してください
- */
- string s = "aaa";
- Test<string>(s);
- }
- #if 0
- // コンパイルエラー全文
- 1>------ ビルド開始: プロジェクト:boostSpirit, 構成:Debug Win32 ------
- 1> inh_attr.cpp
- 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2903: 'result' : シンボルはクラス テンプレート でも関数 テンプレート でもありません
- 1> c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(194) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::result_of_nested_result<F,FArgs>' の参照を確認してください
- 1> with
- 1> [
- 1> F=MyStruct
- 1> , FArgs=MyStruct (boost::spirit::unused_type,boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>)
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(37) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::tr1_result_of_impl<MyStruct,MyStruct (T0,T1),false>' の参照を確認してください
- 1> with
- 1> [
- 1> T0=boost::spirit::unused_type
- 1> , T1=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(160) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::tr1_result_of<F (T0,T1)>' の参照を確認してください
- 1> with
- 1> [
- 1> F=MyStruct
- 1> , T0=boost::spirit::unused_type
- 1> , T1=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\mpl\eval_if.hpp(41) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::result_of<T (boost::spirit::unused_type,Context)>' の参照を確認してください
- 1> with
- 1> [
- 1> T=MyStruct
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\support\nonterminal\expand_arg.hpp(38) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::eval_if<boost::mpl::or_<boost::is_scalar<T>,boost::spirit::traits::is_string<T>,boost::mpl::false_,boost::mpl::false_,boost::mpl::false_>,boost::mpl::identity<const T &>,boost::result_of<T (boost::spirit::unused_type,Context)>>' の参照を確認してください
- 1> with
- 1> [
- 1> T=MyStruct
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\support\nonterminal\expand_arg.hpp(47) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::detail::expand_arg<Context>::result_type<A0>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , A0=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(187) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::detail::expand_arg<Context>::result<FArgs>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , FArgs=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>> (MyStruct)
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(194) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::result_of_nested_result<F,FArgs>' の参照を確認してください
- 1> with
- 1> [
- 1> F=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>
- 1> , FArgs=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>> (MyStruct)
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(37) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::tr1_result_of_impl<boost::spirit::detail::expand_arg<Context>,boost::spirit::detail::expand_arg<Context> (T0),false>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , T0=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(160) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::tr1_result_of<F (T0)>' の参照を確認してください
- 1> with
- 1> [
- 1> F=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>
- 1> , T0=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\fusion\view\transform_view\detail\apply_transform_result.hpp(30) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::result_of<F (T0)>' の参照を確認してください
- 1> with
- 1> [
- 1> F=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>
- 1> , T0=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\mpl\aux_\preprocessed\plain\apply_wrap.hpp(39) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::detail::apply_transform_result<boost::spirit::detail::expand_arg<Context>>::apply<T1,boost::fusion::void_>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , T1=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\mpl\aux_\preprocessed\plain\apply.hpp(43) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply_wrap1<boost::fusion::detail::apply_transform_result<boost::spirit::detail::expand_arg<Context>>,T1>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , T1=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\mpl\aux_\preprocessed\plain\apply.hpp(51) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply1<F,T1>' の参照を確認してください
- 1> with
- 1> [
- 1> F=boost::fusion::detail::apply_transform_result<boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>>
- 1> , T1=MyStruct
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\fusion\view\transform_view\detail\value_of_impl.hpp(36) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply<boost::fusion::detail::apply_transform_result<boost::spirit::detail::expand_arg<Context>>,MyStruct,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>' の参照を確認してください
- 1> with
- 1> [
- 1> Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\fusion\iterator\value_of.hpp(53) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::extension::value_of_impl<boost::fusion::transform_view_iterator_tag>::apply<Iterator>' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=boost::fusion::transform_view_iterator<boost::fusion::vector_iterator<const boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,0>,boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\fusion\container\list\detail\build_cons.hpp(44) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::result_of::value_of<First>' の参照を確認してください
- 1> with
- 1> [
- 1> First=boost::fusion::transform_view_iterator<boost::fusion::vector_iterator<const boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>,0>,boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\fusion\container\list\convert.hpp(31) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::detail::build_cons<boost::fusion::transform_view_iterator<boost::fusion::vector_iterator<Sequence,0>,boost::spirit::detail::expand_arg<Context>>,boost::fusion::transform_view_iterator<boost::fusion::vector_iterator<Sequence,1>,boost::spirit::detail::expand_arg<Context>>,false>' の参照を確認してください
- 1> with
- 1> [
- 1> Sequence=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\support\context.hpp(115) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::result_of::as_list<const boost::fusion::transform_view<Sequence,F,boost::fusion::void_>>' の参照を確認してください
- 1> with
- 1> [
- 1> Sequence=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> , F=boost::spirit::detail::expand_arg<boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\nonterminal\rule.hpp(343) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::context<boost::fusion::cons<int &,boost::fusion::cons<MyStruct,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>,Last,true>::type>>,boost::fusion::vector0<void>>::context<Params,Context>(int &,const Args &,Context &)' の参照を確認してください
- 1> with
- 1> [
- 1> Last=boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>
- 1> , Params=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Args=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\nonterminal\rule.hpp(343) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::context<boost::fusion::cons<int &,boost::fusion::cons<MyStruct,boost::fusion::detail::build_cons<boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>,Last,true>::type>>,boost::fusion::vector0<void>>::context<Params,Context>(int &,const Args &,Context &)' の参照を確認してください
- 1> with
- 1> [
- 1> Last=boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>
- 1> , Params=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Args=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\nonterminal\detail\parameterized.hpp(48) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::rule<Iterator,T1,T2,T3,T4>::parse<Context,Skipper,Attribute,Params>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &,const Params &) const' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , T1=int (MyStruct)
- 1> , T2=boost::spirit::standard::space_type
- 1> , T3=boost::spirit::unused_type
- 1> , T4=boost::spirit::unused_type
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Skipper=skipper_type
- 1> , Attribute=int
- 1> , Params=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\nonterminal\detail\parameterized.hpp(48) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::rule<Iterator,T1,T2,T3,T4>::parse<Context,Skipper,Attribute,Params>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &,const Params &) const' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , T1=int (MyStruct)
- 1> , T2=boost::spirit::standard::space_type
- 1> , T3=boost::spirit::unused_type
- 1> , T4=boost::spirit::unused_type
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Skipper=skipper_type
- 1> , Attribute=int
- 1> , Params=boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\parse.hpp(165) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::parameterized_nonterminal<boost::spirit::qi::rule<Iterator,T1,T2,T3,T4>,boost::fusion::vector<InhAttrT,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>::parse<Iterator,boost::spirit::context<boost::fusion::cons<T &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>,skipper_type,Attr>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &) const' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , T1=int (MyStruct)
- 1> , T2=boost::spirit::standard::space_type
- 1> , T3=boost::spirit::unused_type
- 1> , T4=boost::spirit::unused_type
- 1> , InhAttrT=MyStruct
- 1> , T=int
- 1> , Attr=int
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Skipper=skipper_type
- 1> , Attribute=int
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\parse.hpp(165) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::parameterized_nonterminal<boost::spirit::qi::rule<Iterator,T1,T2,T3,T4>,boost::fusion::vector<InhAttrT,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>::parse<Iterator,boost::spirit::context<boost::fusion::cons<T &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>,skipper_type,Attr>(Iterator &,const Iterator &,Context &,const Skipper &,Attribute &) const' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , T1=int (MyStruct)
- 1> , T2=boost::spirit::standard::space_type
- 1> , T3=boost::spirit::unused_type
- 1> , T4=boost::spirit::unused_type
- 1> , InhAttrT=MyStruct
- 1> , T=int
- 1> , Attr=int
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> , Skipper=skipper_type
- 1> , Attribute=int
- 1> ]
- 1> c:\lib\boost\include\boost-1_55\boost\spirit\home\qi\parse.hpp(197) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::phrase_parse<Iterator,Expr,Skipper,Attr>(Iterator &,Iterator,const Expr &,const Skipper &,boost::spirit::qi::skip_flag,Attr &)' の参照を確認してください
- 1> with
- 1> [
- 1> Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , Expr=boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::qi::parameterized_nonterminal<boost::spirit::qi::rule<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,int (MyStruct),boost::spirit::standard::space_type,boost::spirit::unused_type,boost::spirit::unused_type>,boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>>,0>
- 1> , Skipper=boost::spirit::standard::space_type
- 1> , Attr=int
- 1> ]
- 1> e:\userdata\<username>\documents\visual studio 2013\projects\<solutionName>\<projectName>\inh_attr.cpp(35) : コンパイルされたクラスの テンプレート のインスタンス化 'bool boost::spirit::qi::phrase_parse<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<T>,0>,boost::spirit::standard::space_type,int>(Iterator &,Iterator,const Expr &,const Skipper &,Attr &)' の参照を確認してください
- 1> with
- 1> [
- 1> T=boost::spirit::qi::parameterized_nonterminal<boost::spirit::qi::rule<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,int (MyStruct),boost::spirit::standard::space_type,boost::spirit::unused_type,boost::spirit::unused_type>,boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>
- 1> , Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
- 1> , Expr=boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,boost::proto::argsns_::term<boost::spirit::qi::parameterized_nonterminal<boost::spirit::qi::rule<std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,int (MyStruct),boost::spirit::standard::space_type,boost::spirit::unused_type,boost::spirit::unused_type>,boost::fusion::vector<MyStruct,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_,boost::fusion::void_>>>,0>
- 1> , Skipper=boost::spirit::standard::space_type
- 1> , Attr=int
- 1> ]
- 1> e:\userdata\<username>\documents\visual studio 2013\projects\<solutionName>\<projectName>\inh_attr.cpp(47) : コンパイルされたクラスの テンプレート のインスタンス化 'void Test<MyStruct>(InhAttrT &)' の参照を確認してください
- 1> with
- 1> [
- 1> InhAttrT=MyStruct
- 1> ]
- 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2039: 'result' : 'MyStruct' のメンバーではありません。
- 1> e:\userdata\<username>\documents\visual studio 2013\projects\<solutionName>\<projectName>\inh_attr.cpp(40) : 'MyStruct' の宣言を確認してください。
- 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2504: 'result' : 定義されていない基底クラスが宣言されています。
- 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2143: 構文エラー : ',' が '<' の前にありません。
- 1>c:\lib\boost\include\boost-1_55\boost\spirit\home\support\nonterminal\expand_arg.hpp(38): error C2039: 'type' : 'boost::mpl::eval_if<boost::mpl::or_<boost::is_scalar<T>,boost::spirit::traits::is_string<T>,boost::mpl::false_,boost::mpl::false_,boost::mpl::false_>,boost::mpl::identity<const T &>,boost::result_of<T (boost::spirit::unused_type,Context)>>' のメンバーではありません。
- 1> with
- 1> [
- 1> T=MyStruct
- 1> , Context=boost::spirit::context<boost::fusion::cons<int &,boost::fusion::nil_>,boost::spirit::locals<boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na,boost::mpl::na>>
- 1> ]
- 1>c:\lib\boost\include\boost-1_55\boost\fusion\container\list\detail\build_cons.hpp(45): error C3203: 'type' : 非特殊 クラス テンプレート は、テンプレート 引数として テンプレート パラメーター 'Car' に使用できません。実際の型を指定してください
- ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement