【问题标题】:explicit qualification in declaration of 'std::cout''std::cout' 声明中的明确限定
【发布时间】:2017-09-28 20:02:19
【问题描述】:

这个问题对我来说真的很奇怪。

代码尽量简单:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

它只是 helloworld,因为它是从标准 cpp 项目创建的。 我确信它奏效了。但是过了一段时间(真的不记得发生了什么变化......)我得到了一个错误:

error: explicit qualification in declaration of 'std::cout'
   extern ostream std::cout;  /// Linked to standard output

有趣的事情不在项目中,而是在 iostream 中

一些帮助? ^_^

.新信息: 我正在构建 boost 库,对于许多文件,我遇到了同样的错误:在声明 'std::cout' 时显式限定

我使用 MinGW

【问题讨论】:

  • 您发布的内容很好。您在某处没有发布的代码。如果有任何疑问,请创建一个新项目并将您在此处发布的内容准确粘贴到其中。然后看看你是否仍然得到错误。
  • 也许您更改了IDE 中的项目设置?
  • 我的第一个c++程序代码:) :)
  • 你使用的是哪个编译器?
  • 可能相关,但对于 C++ 初学者来说可能太花哨了:stackoverflow.com/questions/8461832/…

标签: c++ iostream explicit


【解决方案1】:

唯一想到的解释是:

  1. 有人修改了标准标题(不小心?),替换了原来的

    extern ostream cout;
    

    不正确

    extern ostream std::cout;
    
  2. 有人将名为cout 的宏定义为std::cout,很可能是在编译器的命令行中。例如

    -Dcout=std::cout
    

    例如,请参阅http://coliru.stacked-crooked.com/a/bc5be8c7d99fed53

【讨论】:

  • 你就是男人!谢谢!你能想象吗,我正在使用重构来改变 cout 与 std::cout ......它也在 iostream 内部被改变......愚蠢的用户)))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
相关资源
最近更新 更多