Повысить ошибку компиляции зверя - PullRequest
0 голосов
/ 16 мая 2018

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

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

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

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

0 голосов
/ 16 мая 2018

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

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_))
{
}

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

...