C++ 是否有使用name=type的私有文件;
我想写:C++ 是否有使用name=type的私有文件;,c++,c++11,private,using,C++,C++11,Private,Using,我想写: namespace A{ using name = type; } 但如果我尝试从另一个空间使用它,它将是可用的。我可以在名称空间内将其设置为私有吗?没有语言特性允许这样做,但许多项目都有一个惯例,即名为detail的名称空间的所有内容都是保留的,不应使用 namespace A { namespace detail { using name = type; } //something using detail::name } //
namespace A{
using name = type;
}
但如果我尝试从另一个空间使用它,它将是可用的。我可以在名称空间内将其设置为私有吗?没有语言特性允许这样做,但许多项目都有一个惯例,即名为
detail
的名称空间的所有内容都是保留的,不应使用
namespace A {
namespace detail {
using name = type;
}
//something using detail::name
}
//A::detail::name technically accessible, but disallowed by convention
不,你不能:名称空间(粗略地说)是公共的,除非整个东西都在匿名名称空间中,在这种情况下,它只对编译单元可见
namespace{
namespace A{
using name = type;
}
}
这是否有效:
名称空间A{namespace{using name=type;}name x;}
?如果我理解正确,这将使name
成为A
的私有,而在您的代码片段中,完整的命名空间A
在另一个编译单元中不可见。