Si dovrebbe essere in grado di utilizzare gli alias dello spazio dei nomi per la classe:
using B = A::B;
Tuttavia non è possibile farlo con la funzione di membro, nemmeno con funzioni membro statiche.
Edit: Secondo this SO answer (What is the difference between 'typedef' and 'using' in C++11) questo dovrebbe essere valido, e in realtà crea un tipo alias nello stesso modo in cui typedef
fa. Tuttavia, è solo C++ 11.
C'è una soluzione per le funzioni membro statiche in C++ 11, dichiarando una variabile che punta alla funzione statica:
struct Foo
{
static void bar()
{ }
};
auto bar = Foo::bar;
Edit: Naturalmente, avendo una punta variabile globale a una funzione membro statica è possibile anche nel vecchio standard C++, ma è più complicato rispetto all'utilizzo della parola chiave auto
di C++ 11. Nell'esempio sopra sarebbe:
void (*bar)() = Foo::bar;
fonte
2012-07-25 10:41:05
Errore di compilazione "Errore: 'A' non è uno spazio dei nomi"? – Johnsyweb
Non è possibile farlo per 'A :: f()'. – iammilind
@iammilind ma puoi ottenere quel comportamento con una soluzione alternativa. –