我无法声明模板类。我已经尝试了许多不可读和非感性的组合。
template <class C, class M >
class BlockCipherGenerator : public KeyGenerator
{
...
private:
M < C > m_cipher;
};
和
template <class C, class M >
class BlockCipherGenerator : public KeyGenerator
{
typedef typename C::value_type CIPHER;
typedef typename M::value_type MODE;
private:
MODE < CIPHER > m_cipher;
};
答案 0 :(得分:42)
这就是它所说的。
您的模板参数列表显示M
is a class
, not a template
。
如果你说它是一个模板,then everything's fine:
template <class C, template <class C> class M>
class BlockCipherGenerator : public KeyGenerator
{
M<C> m_cipher;
};
请记住,std::vector
之类的内容不是类,而是类模板。像std::vector<int>
这样的东西是一个类(类型)。