我有以下“主要”模板:
template <
template <typename> class S
> struct TT { /*...*/ };
以及我想使用的模板TT
:
template <int N, typename T> struct S1 {};
特别是,我想使用类似的东西
TT< S1<5> > t2; // "Invalid template arguments" here
它是模板的一种部分应用。我知道 Boost.MPL 涉及到这种东西。问题是我已经有一些使用 TT 和模板的代码
template <typename T> struct S2 {}; // S3, S4…
喂给 TT。
所以问题是:如何在对现有代码进行最小修改的情况下S1
使用。TT
如果必须使用 Boost.MPL,请告诉我最合适的解决方案。