Se voglio usare un membro di una classe di base modello da un modello di classe derivata, devo portarlo in ambito come tale:C++ utilizzando dichiarazione nella funzione membro portata
template <typename T>
struct base
{
void foo();
};
template <typename T>
struct derived : base<T>
{
using base<T>::foo;
};
Perché non è possibile posiziona questa istruzione usando in un ambito locale, come altre istruzioni usando?
template <typename T>
struct base
{
void foo();
};
template <typename T>
struct derived : base<T>
{
void f()
{
using base<T>::foo; // ERROR: base<T> is not a namespace
}
};
Quale problema stai cercando di risolvere facendo questo? Stai cercando di evitare il prefisso del nome 'pippo' con' questo-> '? –
Usando la dichiarazione using, sto evitando il prefisso del nome 'pippo' con' this-> ', sì. Inserendolo in un ambito locale, sto cercando di inquinare l'ambito derivato solo dove necessario. – HighCommander4