考慮模板C類通過模板的模板參數和兩個策略定義的策略集:與錯號碼的模板參數模板的模板參數
template<class T> struct PolicyOne { };
template<class T, int U, int V> struct PolicyTwo { };
template<class T, template<class> class POLICY> struct C { POLICY<T> policy; };
void f()
{
C<int, PolicyOne> mc1;
C<int, PolicyTwo<1, 2> > mc2; // doesn't work this way
}
PolicyTwo
不因錯號的模板參數工作。 如果您指定其他模板參數的類型,是否有方法使用PolicyTwo
作爲POLICY
模板參數?
我正在使用C++ 03,所以別名聲明不可用。 我知道this question,但我沒有看到我的問題在那裏的解決方案。
此解決方案不適合我,因爲它不會讓我申報'POLICY'的默認值獨立於'T'工作。 – 2013-04-11 15:37:19
@Gabriel Schreiber你的策略可以簡單地選擇忽略它的模板類型參數(同時仍然暴露它的類型),然後它獨立於'T'工作。 – 2013-04-11 16:02:43