隐藏仅限标头库中的实现

时间:2016-05-27 13:39:44

标签: c++ header-only

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

namespace library {
 namespace implementation {
  //implementation
 }

 using namespace implementation

 //visible identifiers
}

是否可以隐藏实现,而无需使用" implementation ::"在使用实施中的任何内容之前?

1 个答案:

答案 0 :(得分:7)

  

使其无用

嗯,它没有用,你只能using namespace它。您必须明确地将implementation::添加到其中的名称中。因此,选择较短的名称可能是有意义的(detail通常用于c ++项目中。)

另外,我想指出仅限标题和实现隐藏是两个有些矛盾的要求。如果您确实需要隐藏实现,则无法使用标题。