如果使用名称空间来分离模块/结构化,则头文件中的嵌套和缩进会显着增加。有没有办法以较短的方式编写以下代码?
namespace A
{
namespace B
{
namespace C
{
namespace D
{
namespace E
{
template <typename T>
public class X
{
public: ...
e.g。像
namespace A::B::C::D::E
{
template<typename T> ...
}
在c ++的头文件中?
答案 0 :(得分:5)
不,之前在不同的时间和地点建议过嵌套的命名空间语法但是无效。
你不需要缩进
namespace A { namespace B { namespace C {
// ...
} } } // namespace A::B::C
答案 1 :(得分:2)
您可以使用命名空间别名。这不适用于扩展现有的命名空间,而是更容易访问。
您可以使用宏来扩展现有的命名空间,但您需要执行此操作,您可能拥有比您需要或想要的更深的命名空间层次结构。