У меня проблемы с объявлением класса шаблона. Я пробовал несколько плохо читаемых и бессмысленных комбинаций.
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;
};