1

我尝试使用实现命名空间,但是当我“使用命名空间”时,它会拉入整个实现命名空间,使其无用。

namespace library {
 namespace implementation {
  //implementation
 }

 using namespace implementation

 //visible identifiers
}

有没有办法隐藏实现,而不需要在使用任何实现之前使用“实现::”?

4

1 回答 1

7

使其无用

好吧,这不是没用的,你就是做不到using namespace。您必须明确地预先implementation::添加其中的名称。出于这个原因,选择一个较短的名称可能是有意义的(detail通常用于此目的的 c++ 项目中)。

另外,我想指出,仅标头和隐藏实现是两个有些冲突的要求。如果您确实需要隐藏实现,则不能仅使用标头。

于 2016-05-27T13:42:52.880 回答