我想创建一个新库,并希望确保我不会重用已被其他库使用的命名空间.命名空间我主要是指一个c ++命名空间,但理想情况下也应该避免像gnu科学库和指南支持库之间的首字母缩略词冲突.
确定命名空间是否已被使用的合理方法是什么(除了谷歌搜索"c ++")?
编辑:
澄清:我知道无法确定我的命名空间名称是唯一的,甚至更少它将保持唯一.我正在寻找的是提示,以尽量减少与某些环境中的事实标准的常用库和/或库发生冲突的可能性(例如,我对mac/ios/android特定库一无所知).
是的,我可以使用,my_ridiculously_long_but_unique_namespace_name_xy5md4但如果你想在头文件中使用它,这是非常实用的.
什么是确定命名空间是否已被使用的有效方法(除了谷歌搜索"c ++")?
空无一人.要有一个人需要一个中央存储库(以及管理它的中央权限!)每个C++源代码,我们很幸运没有任何(这将是一场噩梦,并会限制我们的自由).
在实践中,务实.为您的C++项目找到一个好的,不是太短的,很少使用的名称,并将它(或相关的东西)用于您的C++名称空间.如果您打算为Linux 编写一个免费软件库,请检查您的推定名称是否是您喜爱的Linux发行版中某些现有软件包的名称(例如,在Debian中)
比如说mikematrixinversion会好过mi.
例如,如果您将项目作为免费软件放在github上,您可以检查您的初始项目名称是否(经常)使用,并使用该github项目名称作为命名空间.
(实际上,你太担心了.你的项目更容易被忽略,而不是与其他名字相撞)
在你提到的评论中
有没有办法轻松搜索ubuntu存储库中的所有库?
不,AFAIK.但是,您可以在编译器插件或扩展之上构建一些东西(例如GCC MELT); 你需要多年的工作.人们确实在他们的Ubuntu系统上安装了一些外部库,所以你需要搜索更多(比Ubuntu包含的更多),如果Ubuntu或Debian足够大,已经有冲突的库,我也不会感到惊讶.
然而,请查看softwareheritage项目.BTW,在整个Linux发行版中搜索名称和其他相似之处或类比(使用静态源代码分析)是一个非常有趣的研究项目.另请参阅OSSmeter和CrossMiner项目(均由欧洲资助).
在专业方面,我打算提交与未来ICT18 H2020欧洲电话有关的内容(2018年4月).如果您在欧洲并且有兴趣,请与我联系.
是的,我可以使用,
my_ridiculously_long_but_unique_namespace_name_xy5md4但如果你想在头文件中使用它,这是非常实用的.
它很实用(你的编辑器需要很好的自动完成功能).正如sp2danny所评论的,你可以拥有命名空间别名,你也可以拥有预处理器宏.