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

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

При компиляции примера проекта:
http_server_small.cpp (из «зверя»)

подталкивание \ зверь \ ядро ​​\ подробно \ 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. (Я не автор библиотеки, я просто пытаюсь ее использовать).

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

1

Решение

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

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

Другие решения

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

1