ошибка компоновки при попытке назначить cout переменной ostream - PullRequest
0 голосов
/ 02 июня 2019

Я прилагаю подписку на ошибку компоновщика

неразрешенный внешний символ "class std :: basic_ostream> std :: cout" (? СоиЬ @ станд @@ 3V? $ Basic_ostream @ DU? $ Char_traits @ D @ станд @@@ 1 @ A) "

при попытке назначить std :: cout статическому constexpr std :: stream при использовании visual stidio 2017 и visual studio 2019. Однако при использовании 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;

подтверждено, чтобы быть в порядке.

Мой вопрос:

Is

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

законное выражение. Если нет, то почему?

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...