Невозможно скомпилировать boost-asio на MSVC, но только с помощью /std:c++20 и набора инструментов v143.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно скомпилировать boost-asio на MSVC, но только с помощью /std:c++20 и набора инструментов v143.

Сообщение Anonymous »

Кажется, я не могу найти никакой информации об этой ошибке. Это моя очень простая программа повышения asio:

Код: Выделить всё

#include 
#include 

auto main() -> int
{
boost::asio::io_context ctx;
boost::asio::serial_port p(ctx);
return 0;
}
< /code>
Это не может компилировать для меня в Visual Studio 17.12.4 (самая новая), когда я использую оба /Std: C ++ 20 < /code> (или выше) и V143 Toolkit. Он работает как с инструментарием V142, так и с версией нижнего языка - только комбинация обоих не может построить. Моя версия Boost - 1.84.0.  Сообщение об ошибке: < /p>
------ Build started: Project: sandbox, Configuration: Debug x64 ------
main.cpp
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16): error C2665: 'boost::asio::any_io_executor::any_io_executor': no overloaded function could convert all the argument types
(compiling source file 'main.cpp')
c:\vcpkg_dir\include\boost\asio\impl\any_io_executor.ipp(34,18):
could be 'boost::asio::any_io_executor::any_io_executor(std::nullptr_t) noexcept'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
'boost::asio::any_io_executor::any_io_executor(std::nullptr_t) noexcept': cannot convert argument 1 from 'boost::asio::io_context::executor_type' to 'std::nullptr_t'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,37):
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(184,3):
or       'boost::asio::any_io_executor::any_io_executor(std::nothrow_t,Executor,constraint::value,boost::asio::execution::detail::is_valid_target_executor,std::false_type>::value,int>::type) noexcept'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
'boost::asio::any_io_executor::any_io_executor(std::nothrow_t,Executor,constraint::value,boost::asio::execution::detail::is_valid_target_executor,std::false_type>::value,int>::type) noexcept': expects 3 arguments - 1 provided
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(162,3):
or       'boost::asio::any_io_executor::any_io_executor(Executor,constraint::value,boost::asio::execution::detail::is_valid_target_executor,std::false_type>::value,int>::type)'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
Failed to specialize function template 'boost::asio::any_io_executor::any_io_executor(Executor,constraint::value,boost::asio::execution::detail::is_valid_target_executor,std::false_type>::value,int>::type)'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
With the following template arguments:
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
'Executor=boost::asio::io_context::executor_type'
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(163,7):
'boost::asio::constraint_t' : Failed to specialize alias template
c:\vcpkg_dir\include\boost\asio\detail\type_traits.hpp(169,60):
'type':  is not a member of any direct or indirect base class of 'boost::asio::constraint'
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(132,3):
or       'boost::asio::any_io_executor::any_io_executor(std::nothrow_t,OtherAnyExecutor,constraint::value,boost::asio::execution::detail::supportable_properties::is_valid_target,std::false_type>::value,int>::type) noexcept'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
'boost::asio::any_io_executor::any_io_executor(std::nothrow_t,OtherAnyExecutor,constraint::value,boost::asio::execution::detail::supportable_properties::is_valid_target,std::false_type>::value,int>::type) noexcept':  expects 3 arguments - 1 provided
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(108,3):
or       'boost::asio::any_io_executor::any_io_executor(OtherAnyExecutor,constraint::value,boost::asio::execution::detail::supportable_properties::is_valid_target,std::false_type>::value,int>::type)'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
Failed to specialize function template 'boost::asio::any_io_executor::any_io_executor(OtherAnyExecutor,constraint::value,boost::asio::execution::detail::supportable_properties::is_valid_target,std::false_type>::value,int>::type)'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
With the following template arguments:
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
'OtherAnyExecutor=boost::asio::io_context::executor_type'
c:\vcpkg_dir\include\boost\asio\any_io_executor.hpp(109,7):
'boost::asio::constraint_t' : Failed to specialize alias template
c:\vcpkg_dir\include\boost\asio\detail\type_traits.hpp(169,60):
'type': is not a member of any direct or indirect base class of 'boost::asio::constraint'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
while trying to match the argument list '(boost::asio::io_context::executor_type)'
c:\vcpkg_dir\include\boost\asio\detail\io_object_impl.hpp(59,16):
the template instantiation context (the oldest one first) is
C:\Users\me\source\repos\sandbox\sandbox\main.cpp(21,31):
see reference to function template instantiation 'boost::asio::basic_serial_port::basic_serial_port(ExecutionContext &,const char *,int)' being compiled
with
[
ExecutionContext=boost::asio::io_context
]
C:\Users\me\source\repos\sandbox\sandbox\main.cpp(21,31):
see the first reference to 'boost::asio::basic_serial_port::basic_serial_port' in 'main'
c:\vcpkg_dir\include\boost\asio\basic_serial_port.hpp(158,12):
see reference to function template instantiation 'boost::asio::detail::io_object_impl::io_object_impl(int,int,ExecutionContext &)' being compiled
with
[
Executor=boost::asio::any_io_executor,
ExecutionContext=boost::asio::io_context
]
Есть какие-нибудь подсказки?

Подробнее здесь: https://stackoverflow.com/questions/793 ... 43-toolkit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»