Ответ 1
Вы должны иметь возможность использовать псевдонимы пространства имен для класса:
using B = A::B;
Однако вы не можете сделать это с помощью функции-члена, даже со статическими функциями-членами.
Изменить: По этот ответ SO (в чем разница между 'typedef' и 'using' в С++ 11) это должно быть действительным и фактически создает псевдоним типа так же, как это делает typedef
. Однако это только С++ 11.
Существует временное решение для статических функций-членов в С++ 11, объявляя переменную, указывающую на статическую функцию:
struct Foo
{
static void bar()
{ }
};
auto bar = Foo::bar;
Изменить: Конечно, наличие глобальной переменной, указывающей на статическую функцию-член, возможно и в старом стандарте С++, но это более беспорядочно, чем использование ключевого слова auto
на С++ 11. В приведенном выше примере это будет:
void (*bar)() = Foo::bar;