尝试将cout分配给ostream变量时发生链接错误

时间:2019-06-02 02:17:52

标签: visual-c++

我遇到关注链接器错误

  

无法解析的外部符号“ class std :: basic_ostream> std :: cout”   (?cout @ std @@ 3V?$ basic_ostream @ DU?$ char_traits @ D @ std @@@@ 1 @ A)“

当使用Visual stidio 2017和Visual Studio 2019尝试将std :: cout分配给静态constexpr std :: stream时。但是,使用gcc时不会遇到问题。

以下简单的测试代码可能表明存在此问题

#include <iostream>

int main()
{
    static constexpr std::ostream* fp = &std::cout;
    *fp << "Hello World!\n";
}

两者的表达

constexpr std::ostream* fp = &std::cout;

static std::ostream* fp = &std::cout;

确定可以。

我的问题是:

static constexpr std::ostream* fp = &std::cout;

合法表达。如果没有,为什么?

非常感谢。

0 个答案:

没有答案