c++ - "Using"声明范围仅在当前类?

标签 c++ c++11 using using-directives

是否有可能将 using 指令的范围限制在单个类中?

请注意,我要“使用”的内容不包含在当前类的父类中。

为简单起见,假设以下示例:

#include<vector>

class foo
{
using std::vector; //Error, a class-qualified name is required
}

另一个有趣的事情是,如果包含 using 指令,如果包含 header :

MyClassFoo.h:
#include<vector>

using std::vector; //OK
class foo
{

}

NewHeader.h
#include "MyClassFoo.h"
...

如何防止“using std::vector”在此处可见?

最佳答案

自从您标记了 c++11 之后:

#include<vector>

class foo
{
  template<typename T>
  using vector = std::vector<T>;
};

关于c++ - "Using"声明范围仅在当前类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312956/

相关文章:

c++ - 当我无法立即处理数据时,如何避免内存泄漏

返回类型的 C++11 方法模板特化

c++ - 为什么 std::u16string 比 char16_t 数组慢?

c# - 当前上下文中不存在 DefaultAuthenticationTypes

c++ - 是否可以在 C++ 中查看命名空间的所有内容?

c# - 具有多个资源的 "using"会导致资源泄漏吗?

c++ - 是否需要诊断非类型模板参数中的缩小转换?

c++ - 从基类虚拟继承

C++ vector 推回错误

c++ - 无法为 unique_ptr 返回类型返回 nullptr