命名空间和C++库



名称空间包含在库中还是库包含在名称空间中?C++标准库中有多少个名称空间?

它们是正交的。一个库可以使用多个命名空间,并且一个命名空间可以在多个库之间拆分。然而,最好将库的内容范围限定为该库特定的(通常是单个(命名空间(+嵌套在其中的命名空间(,以避免多个库之间的名称冲突并保持清晰。

标准库仅使用(除了全局名称空间范围之外(std名称空间(+嵌套名称空间(,尽管命名为std并后跟任意数字的名称空间和名称空间posix也保留给标准库以供将来标准化。标准库在std中也有多个嵌套的名称空间,例如std::filesystemstd::ranges,并且在全局名称空间范围中为其保留了某些名称。

标准库还明确允许用户代码(包括用户库(向std命名空间添加某些声明(特别是某些类的部分专用化(。因此std也不总是完全局限于标准库。

相关内容

  • 没有找到相关文章

最新更新