Estoy teniendo problemas para declarar una clase de plantilla. He intentado un número de enfermos legible y no sensical combinaciones.

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

Y

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;
};
InformationsquelleAutor jww | 2011-08-07

1 Comentario

  1. 44

    Es lo que dice.

    Su plantilla de lista de parámetros dice que M es un clase, no plantilla.

    Si usted dice que es una clase plantilla, entonces todo está bien:

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

    Recordar, algo así como std::vector es no una clase, pero con una plantilla de clase. Algo así como std::vector<int> es una clase (tipo).

    • Muchas gracias! Yo creo que en realidad tenía, pero dejo que los errores en el archivo CPP me distraen.
    • No hay problema en absoluto. 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here