Повысить ошибку компиляции зверя

d:\boost\boost\beast\core\detail\ostream.hpp(263): ошибка C2955: 'boost::beast::detail::ostream_helper': использование шаблона класса требует списка аргументов шаблона

При компиляции примера проекта: http_server_small.cpp (от "beast")

подталкивание \ зверь \ ядро ​​\ подробно \ ostream.hpp:

template<class DynamicBuffer, class CharT, class Traits>
ostream_helper<DynamicBuffer, CharT, Traits, true>::
ostream_helper(
        ostream_helper&& other)
    : std::basic_ostream<CharT, Traits>(&osb_)
    , osb_(std::move(other.osb_))
{
}

Boost версия 1.67.00, скомпилированная под visual studio v171 (2017), x64

Это похоже на ошибку в boost/beast lib, но странно видеть ошибку компиляции в релизной версии lib. (Я не автор библиотеки, я просто пытаюсь ее использовать).

Может быть, мне не хватает некоторых параметров компиляции или флагов? Кто-нибудь выяснил в чем проблема и как ее решить?

2 ответа

Решение

Я думаю, что это должно быть:

template<class DynamicBuffer, class CharT, class Traits>
ostream_helper<DynamicBuffer, CharT, Traits, true>::
ostream_helper(
    ostream_helper<DynamicBuffer, CharT, Traits, true>&& other)
: std::basic_ostream<CharT, Traits>(&osb_)
, osb_(std::move(other.osb_))
{
}

Не могу видеть, как любой компилятор позволил бы этому быть иначе.

Это похоже на проблему с вашей конфигурацией, потому что: 1. Да, это допустимый C++, 2. У меня нет проблем с его компиляцией с использованием последней версии Visual Studio 2017 во всех конфигурациях, и 3. Сценарии AppVeyor регулярно компилируют библиотеку и примеры, и не беспокойтесь о его компиляции: https://ci.appveyor.com/project/vinniefalco/beast/history

Другие вопросы по тегам