【发布时间】:2022-01-09 01:52:09
【问题描述】:
我正在用 C++ 编写一个仅包含标头的模板库。我希望能够在该头文件中编写一些辅助函数,这些函数在包含该头库的 cpp 文件中是不可见的。 有关如何执行此操作的任何提示?
我知道可以在 cpp 文件中使用 static 关键字来限制对该翻译单元的可见性。头文件有类似的东西吗?
【问题讨论】:
-
您可能会使用额外的内部命名空间。 (但仍然可见)。
-
从 C++20 开始,使用模块,您可以选择导出的内容。
-
应该提到,访问修饰符和作用域并不是很好的代码安全性——你必须假设用户将使用未记录的 API,如果他们确定的话,并且尽可能使用明确命名的内部命名空间进行通信。
标签: c++ header visibility