如何实例化模板
问题描述:
的模板我的模板,看起来像这样:如何实例化模板
100 template<size_t A0, size_t A1, size_t A2, size_t A3>
101 struct mask {
103 template<size_t B0, size_t B1, size_t B2, size_t B3>
104 struct compare {
105 static const bool value = (A0 == B0 && A1 == B1 && A2 == B2 && A3 == B3);
106 };
107 };
...
120 const typename boost::enable_if_c<
121 mask<a,b,c,d>::compare<2,3,0,1>::value || ...>::type
我试图实例比较结构。我如何获得121行的价值?
答
你可能需要模板之前比较:
120 const typename boost::enable_if_c<
121 mask<a,b,c,d>::template compare<2,3,0,1>::value || ...>::type
+0
其实之前试过,但是忽略了流浪(. 但现在编译,谢谢。 – Anycorn 2010-04-10 20:59:14
答
哦,我想你需要:
const typename boost::enable_if_c< __typename__ mask<a,b,c,d>::compare<2,3,0,1>::value || ...>::type
究竟问题出在哪里? – 2010-04-10 20:25:38
解析器扼流圈。我猜'比较 Anycorn 2010-04-10 20:30:32
你可以尝试typedefing掩码 ::比较到一个单一的名字看到它有帮助,也检查你没有任何双重的近距离括号>>会混淆解析器。 – James 2010-04-10 20:44:28