Estoy luchando con el siguiente código. Básicamente, tengo una clase Foo y una barra de clases anidadas, y ahora quiero pasar un puntero del objeto Bar de clase a una función, pero no compila. ¿Podría alguien ayudarme con esto? Gracias.Función de plantilla C++ tomando clase de plantilla como parámetro
template <typename T>
struct Foo
{
struct Bar
{
T data_;
};
Bar bar_;
};
template <typename T>
void func(Foo<T>::Bar* bar) // Why is this line wrong???
{
}
int main()
{
Foo<int> foo;
foo.bar_.data_ = 17;
func(&foo.bar_);
return 0;
}
posible duplicado de [C++, argumento de plantilla no puede deducirse] (http://stackoverflow.com/questions/6060824/c-template-argument-can -no se puede deducir) –
(al menos, un duplicado una vez soluciona el problema obvio 'typename', que VC++ probablemente dejaría pasar como de costumbre) –