Boost beast 编译错误

Boost beast compilation error

d:\boost\boost\beast\core\detail\ostream.hpp(263): 错误 C2955: 'boost::beast::detail::ostream_helper': 使用 class 模板需要模板参数列表

编译示例项目时: http_server_small.cpp(来自"beast")

boost\beast\core\detail\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中的错误,但是在release版本的lib中看到编译错误就很奇怪了。 (我不是 lib 的作者,我只是想使用它)。

也许我遗漏了一些编译选项或标志? 有没有人弄清楚问题是什么以及如何解决?

我认为应该是:

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