Estoy tratando de definir la clase base, que contiene solo typedef.Propagating 'typedef' basado en la clase derivada para 'template'
template<typename T>
class A
{
public:
typedef std::vector<T> Vec_t;
};
template<typename T>
class B : public A<T>
{
private:
Vec_t v; // fails - Vec_t is not recognized
};
¿Por qué en B Recibo un error que dice que Vec_t no es reconocido y necesito escribirlo explícitamente?
typename A<T>::Vec_t v;
duplicado exacto: http: // stackoverflow.com/questions/1567730/inheritance-and-templates-in-c-why-are-methods-invisible –
Bueno, en realidad no es un duplicado exacto ya que la publicación que mencionas habla de un método mientras este habla de un tipo. –
typename A :: Vec_t v; está bien. No hay necesidad de allí –