c++ - 可以做命名空间范围 = std::ranges;
问题描述
自 C++20 以来,似乎 std::ranges:: 几乎可以完成 std:: 可以做的所有事情(查看范围算法)。
namespace ranges = std::ranges;
只写在一个项目的最上面的标题是一个好习惯吗?
例如,已经为视图创建了命名空间别名:
namespace std {
namespace views = ranges::views;
}
编辑@StoryTeller - Unslander Monica:一个问题
解决方案
我们不想用第二个命名空间污染全局空间。
- 开发库时,您可以在 MyLib 命名空间内执行此操作,以免造成污染 => 这很方便,因为您可以在 MyLib 范围内简单地使用 range:: ,无论是头文件还是源文件。
- 在开发一个简单的项目时,您可以在“define.hpp”文件中执行此操作,因为由您决定 range:: 的含义(如果您已经有一个 range 类,该标准保护您使用别名或不遵循它的权利例如)。
所以是的,只要你的 API 不污染一个人的全局范围就可以了。
推荐阅读
- php - 使用 cron 作业或从 stripe 订阅 recurring web hook 进行定期付款?
- ios - 如何在 Swift 中检查 SDK 中是否存在互斥方法?
- unity3d - 如何在 Unity Editor 中安装推荐的 SDK 和 JDK
- java - Kotlin 中的克隆对象
- highcharts - Highcharts点击功能显示多个值
- c++ - 可变参数模板中的求和类型
- oracle - 在 SELECT 中使用变量并像普通 SELECT 一样输出结果
- java - 在两个坐标之间绘制路线
- javascript - 自动对焦不适用于反应原生formik
- javascript - 从 php 创建 XMLHTTPRequest