命名空间中特定符号的别名?

evo*_*198 2 c++ namespaces

我想使用具有短语法的命名空间中的特定符号,但不诉诸于将using namespace <xyz>;所有符号引入当前范围。例如,这个想法(无法编译)将是这样的:

#include <iostream>
using cout = std::cout;
using endl = std::endl;
cout << "this is a test" << endl;
Run Code Online (Sandbox Code Playgroud)

这可以做到吗?这看起来微不足道,但我找不到例子。另一种选择是#define cout std::cout,但我想避免这种情况,因为它需要进行#undef'ed 。允许所有 C++ 版本。

另外,cout是模板类实例化,endl是模板函数实例化,因此别名的方法可能会有所不同。

ger*_*rum 5

是的,有可能,你可以简单地写:

using std::endl;
using std::cout;
Run Code Online (Sandbox Code Playgroud)