Advertisement
Guest User

Untitled

a guest
Oct 25th, 2014
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 30.04 KB | None | 0 0
  1. #include "stdafx.h" // empty header
  2.  
  3. #include <iostream>
  4.  
  5. #pragma warning(disable: 4819)
  6. #include <boost/spirit/include/qi.hpp>
  7. #include <boost/spirit/include/phoenix.hpp>
  8. #pragma warning(default: 4819)
  9.  
  10. using namespace std;
  11. using namespace boost;
  12. using namespace boost::spirit;
  13.  
  14. template <typename InhAttrT>
  15. struct TestGrammar
  16.     : qi::grammar < string::iterator, int(InhAttrT), standard::space_type > {
  17.  
  18.     qi::rule <string::iterator, int(InhAttrT), standard::space_type> start;
  19.  
  20.     TestGrammar() : base_type(start) {
  21.         start = int_;
  22.     }
  23.  
  24. };
  25.  
  26. template <typename InhAttrT>
  27. void Test(InhAttrT& attr) {
  28.     TestGrammar<InhAttrT> g;
  29.  
  30.     string src = "100";
  31.     auto begin = src.begin();
  32.  
  33.     int result;
  34.  
  35.     if (qi::phrase_parse(begin, src.end(), g(attr), standard::space, result)) {
  36.         cout << result << endl;
  37.     }
  38. }
  39.  
  40. struct MyStruct {
  41.     int number;
  42. };
  43.  
  44. void InhAttrTest() {
  45.     MyStruct d;
  46.     d.number = 100;
  47.     Test<MyStruct>(d);
  48.  
  49.     /*
  50.     上記インスタンス化で以下のコンパイルエラーが発生する
  51.  
  52.     boost\utility\result_of.hpp:186
  53.         error C2903: 'result' : シンボルはクラス テンプレート でも関数 テンプレート でもありません
  54.     boost\utility\result_of.hpp:186
  55.         error C2039: 'result' : 'MyStruct' のメンバーではありません。
  56.     boost\utility\result_of.hpp:186
  57.         error C2504: 'result' : 定義されていない基底クラスが宣言されています。
  58.     boost\utility\result_of.hpp:186
  59.         error C2143: 構文エラー : ',' が '<' の前にありません。
  60.     boost\spirit\home\support\nonterminal\expand_arg.hpp:38
  61.         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)>>' のメンバーではありません。
  62.     boost\fusion\container\list\detail\build_cons.hpp:45
  63.         error C3203: 'type' : 非特殊 クラス テンプレート は、テンプレート 引数として テンプレート パラメーター 'Car' に使用できません。実際の型を指定してください
  64.     */
  65.  
  66.     string s = "aaa";
  67.     Test<string>(s);
  68.  
  69.  
  70. }
  71.  
  72. #if 0
  73.  
  74. // コンパイルエラー全文
  75.  
  76. 1>------ ビルド開始: プロジェクト:boostSpirit, 構成:Debug Win32 ------
  77. 1>  inh_attr.cpp
  78. 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2903: 'result' : シンボルはクラス テンプレート でも関数 テンプレート でもありません
  79. 1>          c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(194) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::result_of_nested_result<F,FArgs>' の参照を確認してください
  80. 1>          with
  81. 1>          [
  82. 1>              F=MyStruct
  83. 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>>)
  84. 1>          ]
  85. 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>' の参照を確認してください
  86. 1>          with
  87. 1>          [
  88. 1>              T0=boost::spirit::unused_type
  89. 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>>
  90. 1>          ]
  91. 1>          c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(160) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::tr1_result_of<F (T0,T1)>' の参照を確認してください
  92. 1>          with
  93. 1>          [
  94. 1>              F=MyStruct
  95. 1>  ,            T0=boost::spirit::unused_type
  96. 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>>
  97. 1>          ]
  98. 1>          c:\lib\boost\include\boost-1_55\boost\mpl\eval_if.hpp(41) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::result_of<T (boost::spirit::unused_type,Context)>' の参照を確認してください
  99. 1>          with
  100. 1>          [
  101. 1>              T=MyStruct
  102. 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>>
  103. 1>          ]
  104. 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)>>' の参照を確認してください
  105. 1>          with
  106. 1>          [
  107. 1>              T=MyStruct
  108. 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>>
  109. 1>          ]
  110. 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>' の参照を確認してください
  111. 1>          with
  112. 1>          [
  113. 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>>
  114. 1>  ,            A0=MyStruct
  115. 1>          ]
  116. 1>          c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(187) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::spirit::detail::expand_arg<Context>::result<FArgs>' の参照を確認してください
  117. 1>          with
  118. 1>          [
  119. 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>>
  120. 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)
  121. 1>          ]
  122. 1>          c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(194) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::detail::result_of_nested_result<F,FArgs>' の参照を確認してください
  123. 1>          with
  124. 1>          [
  125. 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>>>
  126. 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)
  127. 1>          ]
  128. 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>' の参照を確認してください
  129. 1>          with
  130. 1>          [
  131. 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>>
  132. 1>  ,            T0=MyStruct
  133. 1>          ]
  134. 1>          c:\lib\boost\include\boost-1_55\boost\utility\detail\result_of_iterate.hpp(160) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::tr1_result_of<F (T0)>' の参照を確認してください
  135. 1>          with
  136. 1>          [
  137. 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>>>
  138. 1>  ,            T0=MyStruct
  139. 1>          ]
  140. 1>          c:\lib\boost\include\boost-1_55\boost\fusion\view\transform_view\detail\apply_transform_result.hpp(30) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::result_of<F (T0)>' の参照を確認してください
  141. 1>          with
  142. 1>          [
  143. 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>>>
  144. 1>  ,            T0=MyStruct
  145. 1>          ]
  146. 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_>' の参照を確認してください
  147. 1>          with
  148. 1>          [
  149. 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>>
  150. 1>  ,            T1=MyStruct
  151. 1>          ]
  152. 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>' の参照を確認してください
  153. 1>          with
  154. 1>          [
  155. 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>>
  156. 1>  ,            T1=MyStruct
  157. 1>          ]
  158. 1>          c:\lib\boost\include\boost-1_55\boost\mpl\aux_\preprocessed\plain\apply.hpp(51) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::mpl::apply1<F,T1>' の参照を確認してください
  159. 1>          with
  160. 1>          [
  161. 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>>>>
  162. 1>  ,            T1=MyStruct
  163. 1>          ]
  164. 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>' の参照を確認してください
  165. 1>          with
  166. 1>          [
  167. 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>>
  168. 1>          ]
  169. 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>' の参照を確認してください
  170. 1>          with
  171. 1>          [
  172. 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>>>>
  173. 1>          ]
  174. 1>          c:\lib\boost\include\boost-1_55\boost\fusion\container\list\detail\build_cons.hpp(44) : コンパイルされたクラスの テンプレート のインスタンス化 'boost::fusion::result_of::value_of<First>' の参照を確認してください
  175. 1>          with
  176. 1>          [
  177. 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>>>>
  178. 1>          ]
  179. 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>' の参照を確認してください
  180. 1>          with
  181. 1>          [
  182. 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_>
  183. 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>>
  184. 1>          ]
  185. 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_>>' の参照を確認してください
  186. 1>          with
  187. 1>          [
  188. 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_>
  189. 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>>>
  190. 1>          ]
  191. 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 &)' の参照を確認してください
  192. 1>          with
  193. 1>          [
  194. 1>              Last=boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>
  195. 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_>
  196. 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>>
  197. 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_>
  198. 1>          ]
  199. 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 &)' の参照を確認してください
  200. 1>          with
  201. 1>          [
  202. 1>              Last=boost::fusion::mpl_iterator<boost::mpl::v_iter<boost::mpl::vector1<MyStruct>,1>>
  203. 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_>
  204. 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>>
  205. 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_>
  206. 1>          ]
  207. 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' の参照を確認してください
  208. 1>          with
  209. 1>          [
  210. 1>              Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  211. 1>  ,            T1=int (MyStruct)
  212. 1>  ,            T2=boost::spirit::standard::space_type
  213. 1>  ,            T3=boost::spirit::unused_type
  214. 1>  ,            T4=boost::spirit::unused_type
  215. 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>>
  216. 1>  ,            Skipper=skipper_type
  217. 1>  ,            Attribute=int
  218. 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_>
  219. 1>          ]
  220. 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' の参照を確認してください
  221. 1>          with
  222. 1>          [
  223. 1>              Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  224. 1>  ,            T1=int (MyStruct)
  225. 1>  ,            T2=boost::spirit::standard::space_type
  226. 1>  ,            T3=boost::spirit::unused_type
  227. 1>  ,            T4=boost::spirit::unused_type
  228. 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>>
  229. 1>  ,            Skipper=skipper_type
  230. 1>  ,            Attribute=int
  231. 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_>
  232. 1>          ]
  233. 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' の参照を確認してください
  234. 1>          with
  235. 1>          [
  236. 1>              Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  237. 1>  ,            T1=int (MyStruct)
  238. 1>  ,            T2=boost::spirit::standard::space_type
  239. 1>  ,            T3=boost::spirit::unused_type
  240. 1>  ,            T4=boost::spirit::unused_type
  241. 1>  ,            InhAttrT=MyStruct
  242. 1>  ,            T=int
  243. 1>  ,            Attr=int
  244. 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>>
  245. 1>  ,            Skipper=skipper_type
  246. 1>  ,            Attribute=int
  247. 1>          ]
  248. 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' の参照を確認してください
  249. 1>          with
  250. 1>          [
  251. 1>              Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  252. 1>  ,            T1=int (MyStruct)
  253. 1>  ,            T2=boost::spirit::standard::space_type
  254. 1>  ,            T3=boost::spirit::unused_type
  255. 1>  ,            T4=boost::spirit::unused_type
  256. 1>  ,            InhAttrT=MyStruct
  257. 1>  ,            T=int
  258. 1>  ,            Attr=int
  259. 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>>
  260. 1>  ,            Skipper=skipper_type
  261. 1>  ,            Attribute=int
  262. 1>          ]
  263. 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 &)' の参照を確認してください
  264. 1>          with
  265. 1>          [
  266. 1>              Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  267. 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>
  268. 1>  ,            Skipper=boost::spirit::standard::space_type
  269. 1>  ,            Attr=int
  270. 1>          ]
  271. 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 &)' の参照を確認してください
  272. 1>          with
  273. 1>          [
  274. 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_>>
  275. 1>  ,            Iterator=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>
  276. 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>
  277. 1>  ,            Skipper=boost::spirit::standard::space_type
  278. 1>  ,            Attr=int
  279. 1>          ]
  280. 1>          e:\userdata\<username>\documents\visual studio 2013\projects\<solutionName>\<projectName>\inh_attr.cpp(47) : コンパイルされたクラスの テンプレート のインスタンス化 'void Test<MyStruct>(InhAttrT &)' の参照を確認してください
  281. 1>          with
  282. 1>          [
  283. 1>              InhAttrT=MyStruct
  284. 1>          ]
  285. 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2039: 'result' : 'MyStruct' のメンバーではありません。
  286. 1>          e:\userdata\<username>\documents\visual studio 2013\projects\<solutionName>\<projectName>\inh_attr.cpp(40) : 'MyStruct' の宣言を確認してください。
  287. 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2504: 'result' : 定義されていない基底クラスが宣言されています。
  288. 1>c:\lib\boost\include\boost-1_55\boost\utility\result_of.hpp(186): error C2143: 構文エラー : ',''<' の前にありません。
  289. 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)>>' のメンバーではありません。
  290. 1>          with
  291. 1>          [
  292. 1>              T=MyStruct
  293. 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>>
  294. 1>          ]
  295. 1>c:\lib\boost\include\boost-1_55\boost\fusion\container\list\detail\build_cons.hpp(45): error C3203: 'type' : 非特殊 クラス テンプレート は、テンプレート 引数として テンプレート パラメーター 'Car' に使用できません。実際の型を指定してください
  296. ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
  297.  
  298. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement