No entiendo, me parece que la llamada a f
es completamente inequívoca, pero no se puede compilar con expected primary-expression before ‘int’
. Si hago un comentario en la línea con la llamada al f
, compila bien.¿Por qué recibo un error al intentar llamar a una función de miembro de plantilla con un parámetro de tipo explícito?
template<typename T>
struct A {
template<typename S>
void f() { }
};
template<typename T>
struct B : A<T> {
void g() {
this->f<int>();
}
};
Te aplaudo no solo por encontrar este problema profano sino por nunca maldecir una vez al describirlo. –