首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我使用"using cout = std::cout;“时,为什么我得到错误"'cout‘in namespace 'std’not name a type”?

当我使用"using cout = std::cout;“时,为什么我得到错误"'cout‘in namespace 'std’not name a type”?
EN

Stack Overflow用户
提问于 2018-06-22 16:09:00
回答 1查看 1.1K关注 0票数 4

我试图使用更短的语法并避免到处使用std::,所以我开始使用新的别名语法。在一些例子中,我看到人们这样使用它:

代码语言:javascript
复制
using json = nlohmann::json;

我用std::试过了,但是用下面的代码:

代码语言:javascript
复制
#include <iostream>

using cout = std::cout;

int main()
{
    cout << "Sometext";
    return 0;
}

但是我得到了错误'cout' in namespace 'std' does not name a type。我知道我可以用

代码语言:javascript
复制
using std::cout;

但是为什么using cout = std::cout;不能工作呢?

编辑:

对于所有投票结束这个问题的人:我把它贴出来了,因为我不能找到解决方案,通过写错误信息。是的,作为我的问题的解决方案的问题描述了发生了什么,但是当有人遇到这种错误时,他不会很容易地找到解决方案。我只是没有意识到,cout是一个对象。我读过一些这样的问题,但仍然不知道会发生什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-22 16:13:11

using cout = std::cout;是指type alias declaration语法。它类似于typedef;因此您尝试声明一个名为cout的类型,该类型引用先前定义的类型std::cout。但是std::cout不是一个类型名称,它是一个类型为std::ostream的对象。

正如错误消息所说,它只是试图告诉您std::cout没有引用类型名称。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50983485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档