【问题标题】:How to name the namespace of my new project?如何命名我的新项目的命名空间?
【发布时间】:2013-08-04 09:14:00
【问题描述】:

我将创建一个将基因组注释呈现到图表中的新库。但是,由于 C++ 没有像 Perl 这样的集中式库网站,我如何知道命名空间是否与任何现有的命名空间冲突?

【问题讨论】:

  • 为什么不把它命名为XnoDraw::呢?
  • xd 让它听起来像一个互联网模因 lol::, rly::yolo::, XnoDraw:: 在我看来更好,唯一需要注意的是,很多时候名字是获得专利或受法律保护,因此请务必选择“免费”的名称。
  • 关闭选民:这既不主观也不离题。为库找到唯一的名称是库设计的一部分,这里也存在语言使用问题。
  • @Potatoswatter:这是纯粹的营销,与设计完全无关。
  • @Potatoswatter:那么避免命名空间冲突的最佳选择是为其生成一个 128 位 GUID。为什么没人做?

标签: c++ namespaces


【解决方案1】:

不,xd 不是一个好名字:它太短了。在有限的上下文中它可能是一个很好的别名,但对于将被其他人使用的库,请提供一个长的描述性名称。然后用户可以选择对其项目有意义的别名。

namespace my_company {
namespace XnoDraw {
// ...
} // namespace XnoDraw
} // namespace my_company

// user code, not your code:
namespace xd = my_company::XnoDraw;

【讨论】:

    【解决方案2】:

    你可以使用除std之外的任何东西。
    请注意,c++ 不允许命名空间使用复合名称。

    例如:

    // Allowed
    namespace a
    {
        namespace b
        {
            int c;
        }
    }
    
    // Not allowed
    namespace a::b
    {
        int c;
    }
    

    【讨论】:

    • 您必须写两次namespace 才能打开两个命名空间,但可用名称的集合是相同的。
    猜你喜欢
    • 2018-04-29
    • 2013-06-26
    • 2017-07-19
    • 2011-07-15
    • 1970-01-01
    • 2016-08-29
    • 2012-01-08
    • 2015-08-26
    • 2018-08-12
    相关资源
    最近更新 更多