C++ C++类中的命名空间降级
C++ namespace declerations inside a C++ class
我有以下 RESTClient 类,我计划使用boost.beast
来实现。我在标头中声明了以下命名空间。
namespace beast = boost::beast;
namespace http = beast::http;
namespace net = boost::asio;
using tcp = boost::asio::ip::tcp;
但是我不想污染全局命名空间。我希望在类中声明名称。我尝试了此处声明的技术C++错误会避免全局命名空间。 这似乎无济于事。将上述命名空间降级带到类内部的优雅方法
class RESTClient {
public:
explicit RESTClient(std::shared_ptr<net::io_context> ioc, std::shared_ptr<Logger> logger, std::shared_ptr<Configuration> config);
virtual ~RESTClient();
private:
std::shared_ptr<Logger> m_logger;
};
该语言根本不允许您将using directive
用于类中的命名空间。因此,编译器会拒绝如下所示的代码。即使使用命名空间别名也在类范围内也是一个错误。
class MyClass {
using namespace std; // error
namespace s = std; // error
};
最有可能的解决方案是在函数范围内声明命名空间(using namespace
声明(或命名空间别名。
struct X {
void foo() {
using namespace std;
cout << "foon"; // without namespace
}
void bar() {
std::cout << "barn"; // using fully qualified name
}
};
相关文章:
- C++ C++类中的命名空间降级
- 如何将要求降级到动态库的 glibcxx 3.4.20?
- C++父指针降级为用作函数参数的子指针
- 是否可以在 OpenSUSE 上降级 glibc?
- 在 Ubuntu 中降级 gcc/g++?
- C++ 如何在不显式强制转换的情况下降级函数调用中的类实例
- 在 Linux 16.04 中降级 libc time.h
- 将 Fedora 23 上的 C/C++ 编译器降级为 MATLAB R2016a 兼容编译器
- 如何在不降级为基类的情况下生成*对象的向量
- 如何*首先*获得独占锁,然后在不释放锁的情况下降级为共享锁
- 跨平台可上行和可降级读/写锁定
- C++隐式数字类型降级
- 将double降级为float时没有警告
- Lambda表达式可以降级为C++98吗
- 从代码的C++11部分降级
- tmultireadexexclusivewritesynchronizer将写锁降级为读锁时的行为
- 您可以通过继承"提升"访问规范,您能"降级"访问规范吗?
- 如何在Windows上降级gcc编译器
- 在Visual Studio 2012中将.NET framework 4.5降级为4,用于C++CLR支持的DLL项目
- 编译器警告 - 从函数返回时C++基本类型降级