我试图使用更短的语法并避免到处使用std::
,所以我开始使用新的别名语法。在一些例子中,我看到人们这样使用它:
using json = nlohmann::json;
我用std::
试过了,但是用下面的代码:
#include <iostream>
using cout = std::cout;
int main()
{
cout << "Sometext";
return 0;
}
但是我得到了错误'cout' in namespace 'std' does not name a type
。我知道我可以用
using std::cout;
但是为什么using cout = std::cout;
不能工作呢?
编辑:
对于所有投票结束这个问题的人:我把它贴出来了,因为我不能找到解决方案,通过写错误信息。是的,作为我的问题的解决方案的问题描述了发生了什么,但是当有人遇到这种错误时,他不会很容易地找到解决方案。我只是没有意识到,cout
是一个对象。我读过一些这样的问题,但仍然不知道会发生什么。
发布于 2018-06-22 16:13:11
using cout = std::cout;
是指type alias declaration语法。它类似于typedef
;因此您尝试声明一个名为cout
的类型,该类型引用先前定义的类型std::cout
。但是std::cout
不是一个类型名称,它是一个类型为std::ostream
的对象。
正如错误消息所说,它只是试图告诉您std::cout
没有引用类型名称。
https://stackoverflow.com/questions/50983485
复制相似问题