Повысить ошибку компиляции зверя
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