为什么 `using` 关键字不能用于静态 class 成员?

Why the `using` keyword cannot be used for static class member?

using 使标识符在全局范围内可见,但为什么不能用于 static class 成员?

例如using std::string::size_type;是错误的。为什么?

Why cannot be used for static class member?

你误解了using-declaration

的用法

Using-declarations can be used to introduce namespace members into other namespaces and block scopes, or to introduce a base class members into derived class definitions.

std::string::size_type;是在std::stringclass中定义的member type,不是命名空间或任何命名空间中的函数。

因此,使用using,您只能specify/declare alias type for a type。例如:

using string_size_type = std::string::size_type;