【发布时间】:2016-06-22 12:34:50
【问题描述】:
我在头文件中实现了一些模板函数,我想将它们的范围限制在该头文件中,因为它们仅用作该文件中的辅助函数。未命名的命名空间不会起到作用,因为当头文件包含在另一个文件中以使用主(非辅助)函数时,辅助函数就会暴露出来。有没有办法限制他们的范围?
【问题讨论】:
-
为什么不将它们移到 cpp 中?
-
因为它们是模板?
-
非偏执的解决方案:为命名空间命名(可能是“详细信息”)。您也可以将其放入额外的标题中,以将其隐藏得更多。
-
想过,但我正在寻找实际的封装:)
-
如果没有人使用,模板函数无论如何也不会被编译,所以给一个命名空间本质上就是封装了模板函数。如果您非常害怕其他人错误地使用该功能,请将其放在嵌套命名空间中。 :)