提问人:daedsidog 提问时间:5/11/2023 最后编辑:daedsidog 更新时间:5/11/2023 访问量:83
防止仅标头库依赖项的命名空间冲突
Preventing namespace conflict from header-only library dependencies
问:
我正在开发一个库组件,它可以用作模板繁重的仅标头库。该库对于它导出的所有函数都有自己的命名空间。
我的问题是该库使用其他仅标头库,具有自己的命名空间。如果用户想要包含我的仅标头库,他将导入我的库的命名空间以及第三方库命名空间。这意味着,如果用户碰巧同时导入我的库和我的库的依赖项之一,则可能存在版本和/或命名空间的冲突。
为了澄清另一件事,我将某个版本的第三方库与我自己的库捆绑在一起,并且需要使用该特定版本。无法将第三方功能卸载到文件而不是标头。.cpp
我想知道处理这个问题的最佳方法是什么,或者它是否值得处理。到目前为止,我只知道两种解决方案,它们对我来说都是一种不好的做法:
- 在我的库命名空间下包含依赖项(往往会破坏事情)。
- 重命名第三方库标头中 to 的每个实例。
ext_namespace::
my_namespace::ext_namespace
答: 暂无答案
评论
#IFNDEF
namespace
using namespace