I’m having trouble declaring a template class. I’ve tried an number of ill-readable and non-sensical combinations.
template <class C, class M >
class BlockCipherGenerator : public KeyGenerator
{
...
private:
M < C > m_cipher;
};
And
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;
};
It’s what it says.
Your template parameter list says that
Mis aclass, not atemplate.If you say that it’s a class template, then everything’s fine:
Remember, something like
std::vectoris not a class, but a class template. Something likestd::vector<int>is a class (type).