首页 > 解决方案 > 我们可以在 cpp 中重命名 cout、endl 关键字吗?

问题描述

由于 typedef 可以更改类型的名称,而 define 可以为值和函数创建别名,有没有办法更改 cout、endl 等的名称?

标签: c++

解决方案


我们可以在 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);
}

避免使用不必要的别名混淆程序。


推荐阅读