Ошибки из Boost ASIO (v1_72_0) с компиляцией Visual Studio 2019 (v16.4.5) в режиме c ++ 20 - PullRequest
1 голос
/ 02 марта 2020

У меня есть проект, который использует boost ASIO (версия 1_72_0) в Visual Studio 2019 (v16.4.5) и который без проблем компилируется, когда для свойства «C ++ Language Standard» установлено значение c ++ 17,

Когда я изменяю это свойство на c ++ последний , чтобы поэкспериментировать с некоторыми новыми функциями C ++ 20, я испытываю gazillion (ну, технически просто 903) ошибки при компиляции, небольшая выборка которых вставлена ​​ниже.

И Visual Studio, и Boost "fre sh installs". Это известная несовместимость или есть какое-то другое свойство проекта или макрос препроцессора, который мне нужно установить?

1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(44,1): error C2062: type 'bool' unexpected (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(45,1): error C2143: syntax error: missing ';' before '{' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(45,1): error C2447: '{': missing function header (old-style formal list?) (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(56,30): error C7568: argument list missing after assumed function template 'callable_with' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(58): message : see reference to class template instantiation 'boost::asio::detail::is_completion_handler_for<T,R(Args...)>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(54): message : see reference to class template instantiation 'boost::arg<9>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(53): message : see reference to class template instantiation 'boost::arg<8>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(52): message : see reference to class template instantiation 'boost::arg<7>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(51): message : see reference to class template instantiation 'boost::arg<6>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(50): message : see reference to class template instantiation 'boost::arg<5>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(49): message : see reference to class template instantiation 'boost::arg<4>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(48): message : see reference to class template instantiation 'boost::arg<3>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(47): message : see reference to class template instantiation 'boost::arg<2>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\bind\placeholders.hpp(46): message : see reference to class template instantiation 'boost::arg<1>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(56,2): error C2059: syntax error: '>' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(57,1): error C3770: 'unknown-type': is not a valid base class (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(63,1): error C2062: type 'bool' unexpected (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(64,35): error C2065: 'T': undeclared identifier (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(64,11): error C2923: 'boost::asio::detail::is_completion_signature': 'T' is not a valid template type argument for parameter 'T' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(64,39): error C2955: 'boost::asio::detail::is_completion_signature': use of class template requires template argument list (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(34): message : see declaration of 'boost::asio::detail::is_completion_signature' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(69,44): error C2061: syntax error: identifier 'completion_signature' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(70,1): error C2062: type 'bool' unexpected (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(71,37): error C2065: 'T': undeclared identifier (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(71,40): error C2065: 'Signature': undeclared identifier (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(71,11): error C2923: 'boost::asio::detail::is_completion_handler_for': 'T' is not a valid template type argument for parameter 'T' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(71,11): error C2923: 'boost::asio::detail::is_completion_handler_for': 'Signature' is not a valid template type argument for parameter 'Signature' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(71,52): error C2955: 'boost::asio::detail::is_completion_handler_for': use of class template requires template argument list (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(50): message : see declaration of 'boost::asio::detail::is_completion_handler_for' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(105,37): error C2039: 'completion_signature': is not a member of 'boost::asio' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(25): message : see declaration of 'boost::asio' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(105,69): error C2061: syntax error: identifier 'completion_signature' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(144,1): error C2061: syntax error: identifier 'completion_handler_for' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(190): message : see reference to class template instantiation 'boost::asio::async_result<CompletionToken>' being compiled (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(144,1): error C2988: unrecognizable template declaration/definition (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(144,1): error C2059: syntax error: ',' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(150,1): error C2334: unexpected token(s) preceding '{'; skipping apparent function body (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(194,11): error C2039: 'completion_signature': is not a member of 'boost::asio' (compiling source file AxCaptureSession.cpp)
1>C:\Program Files\Boost\boost_1_72_0\boost\asio\async_result.hpp(25): message : see declaration of 'boost::asio' (compiling source file AxCaptureSession.cpp)
...