2

例如

struct A
{
    static void foo();
    static void foo(int);
    static void foo(double, char);
    ...
};

并且在一个范围内

namespace nm
{
    using A::foo; // not right
}

如何将类中的静态名称引入范围?

4

1 回答 1

1

你不能。

n3376 7.3.3/8

一个类成员的使用声明应该是一个成员声明。

struct X {
int i;
static int s;
};
void f() {
   using X::i; // error: X::i is a class member
   // and this is not a member declaration.
   using X::s; // error: X::s is a class member
   //and this is not a member declaration.

}

n3376 7.3.3/3

在用作成员声明的 using-declaration 中,nested-name-specifier 应命名正在定义的类的基类。

于 2013-10-28T05:47:44.390 回答