Sono in difficoltà con il seguente codice. Fondamentalmente, ho una classe Foo e una classe nidificata, e ora voglio passare un puntatore dell'oggetto Class Bar a una funzione, ma non lo compila. Qualcuno può aiutarmi con questo? Grazie.Funzione template C++ che accetta la classe template come parametro
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;
}
possibile duplicato del [C++, argomento di un template non può essere dedotto] (http://stackoverflow.com/questions/6060824/c-template-argument-can -not-be-deduced) –
(almeno, un duplicato una volta risolto il problema ovvio di 'typename', che VC++ probabilmente lascerebbe scivolare come al solito comunque) –