Sta*_*zek 3 c++ using c++11 type-alias
我正在尝试使用更短的语法并避免std::在任何地方使用,所以我开始使用新的别名语法.在某些例子中,我看到人们以这种方式使用它:
using json = nlohmann::json;
Run Code Online (Sandbox Code Playgroud)
并尝试使用std::,但代码如下:
#include <iostream>
using cout = std::cout;
int main()
{
cout << "Sometext";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误'cout' in namespace 'std' does not name a type.我知道我可以使用
using std::cout;
Run Code Online (Sandbox Code Playgroud)
但为什么using cout = std::cout;不起作用?
编辑:
所有投票结束这个问题的人:我发布了它,因为我无法找到解决方案,通过写错误信息.是的,提到的问题是解决我的问题的问题描述了会发生什么,但是当有人遇到这种错误时,他将无法轻易找到解决方案.我只是没有意识到,那cout是一个对象.我已经读过这样的一些问题,但仍然不知道会发生什么.
son*_*yao 16
using cout = std::cout;指的是类型别名声明语法.它类似于typedef; 所以你试图声明一个名为cout引用先前定义的类型的类型std::cout.但std::cout它不是类型名称,它是类型为的对象std::ostream.
正如错误消息所说,它只是试图告诉你std::cout不引用类型名称.