声明'std :: cout'的明确资格

时间:2017-09-28 20:02:19

标签: c++ iostream explicit

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

代码尽可能简单:

#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

1 个答案:

答案 0 :(得分:1)

想到的唯一解释是:

  1. 有人修改了标准标题(意外?),取代原来的

    extern ostream cout;
    

    错误

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

    -Dcout=std::cout
    

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

相关问题