c++ - 我们可以在 cpp 中重命名 cout、endl 关键字吗?
问题描述
由于 typedef 可以更改类型的名称,而 define 可以为值和函数创建别名,有没有办法更改 cout、endl 等的名称?
解决方案
我们可以在 cpp 中重命名 cout、endl 关键字吗?
C++ 中的关键字也不cout
是。endl
它们是std
在标准库的命名空间中声明的名称。前者是变量,后者是函数模板。
您不能“重命名”变量或函数模板,就像重命名类型一样,但是就像您可以为类型创建别名一样,您基本上可以使用引用为变量实现相同的目的:
auto& some_name = std::cout;
对于函数模板,一个选项是编写一个包装函数模板:
template<class CharT, class Traits>
auto&
endl_wrapper(std::basic_ostream<CharT, Traits>& os)
{
return std::endl(os);
}
避免使用不必要的别名混淆程序。
推荐阅读
- angular - Angular RxJs - 获取订阅者而不是所需的值
- javascript - React - 如何为 setState 使用参数
- node.js - 为什么 Node.js Net 库不会为 ECONNRESET 抛出正确的异常
- delphi - 在 Delphi 中处理从一种形式到另一种形式的复制组件
- java - 允许用户在 JList 上选择多个项目
- ballerina - 构建简单程序的大小
- javascript - Safari 无法加载本地 js 文件。报告跨域错误
- java - 从 Android 应用程序中的其他模块引用公共模块
- python - 将 Pandas 样式应用于 Jupyter Notebook 中的所有数据框
- node.js - MongoDB 性能问题,可能是由于 NodeJS 项目中使用本机 MongoDB 驱动程序忽略了投影