如何实例化模板模板

时间:2010-04-10 20:23:51

标签: c++ templates instantiation

我的模板看起来像这样:

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行获得价值?

2 个答案:

答案 0 :(得分:6)

比较之前你可能需要模板:

120 const typename boost::enable_if_c<
121 mask<a,b,c,d>::template compare<2,3,0,1>::value || ...>::type

答案 1 :(得分:1)

哦,我认为你需要:

const typename boost::enable_if_c< __typename__ mask<a,b,c,d>::compare<2,3,0,1>::value || ...>::type