Ошибка «X не шаблон» - PullRequest
       0

Ошибка «X не шаблон»

27 голосов
/ 07 августа 2011

У меня проблемы с объявлением класса шаблона. Я пробовал несколько плохо читаемых и бессмысленных комбинаций.

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;
};

1 Ответ

42 голосов
/ 07 августа 2011

Это то, что говорится.

Ваш список параметров шаблона говорит, что M это class, а не template.

Если вы говорите, что это шаблон класса , , тогда все в порядке :

template <class C, template <class C> class M>
class BlockCipherGenerator : public KeyGenerator
{
      M<C> m_cipher;
};

Помните, что что-то вроде std::vector - это не класс, а шаблон класса. Что-то вроде std::vector<int> это класс (тип).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...