Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not working with Boost libraries, newer than 1.73.0 #41

Open
ellinde opened this issue Apr 9, 2022 · 0 comments
Open

Not working with Boost libraries, newer than 1.73.0 #41

ellinde opened this issue Apr 9, 2022 · 0 comments

Comments

@ellinde
Copy link

ellinde commented Apr 9, 2022

[user@ser_latitude VSCode]$ g++ -std=c++17 -o start_reactor -I/libs/backend/BeastHttp/BeastHttp/include -I/libs/boost/include/ main.cpp
In file included from /libs/boost/include/boost/asio/execution.hpp:19,
from /libs/boost/include/boost/asio/detail/strand_executor_service.hpp:27,
from /libs/boost/include/boost/asio/strand.hpp:19,
from /libs/backend/BeastHttp/BeastHttp/include/http/base/strand_stream.hxx:4,
from /libs/backend/BeastHttp/BeastHttp/include/http/reactor/listener.hxx:5,
from main.cpp:1:
/libs/boost/include/boost/asio/execution/any_executor.hpp: In instantiation of 'struct boost::asio::execution::detail::is_valid_target_executor<_0xdead4ead::http::base::strand_stream, void(boost::asio::execution::context_as_tboost::asio::execution_context&, boost::asio::execution::detail::blocking::never_t<0>, boost::asio::execution::prefer_only<boost::asio::execution::detail::blocking::possibly_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::outstanding_work::tracked_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::outstanding_work::untracked_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::relationship::fork_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::relationship::continuation_t<0> >)>':
/libs/boost/include/boost/asio/any_io_executor.hpp:145:3: required by substitution of 'template boost::asio::any_io_executor::any_io_executor(Executor, typename boost::asio::constraint<typename std::conditional<((! std::is_same<Executor, boost::asio::any_io_executor>::value) && (! std::is_base_of<boost::asio::execution::detail::any_executor_base, Executor>::value)), boost::asio::execution::detail::is_valid_target_executor<Executor, void(boost::asio::execution::context_as_tboost::asio::execution_context&, boost::asio::execution::detail::blocking::never_t<0>, boost::asio::execution::prefer_only<boost::asio::execution::detail::blocking::possibly_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::outstanding_work::tracked_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::outstanding_work::untracked_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::relationship::fork_t<0> >, boost::asio::execution::prefer_only<boost::asio::execution::detail::relationship::continuation_t<0> >)>, std::integral_constant<bool, false> >::type::value>::type) [with Executor = _0xdead4ead::http::base::strand_stream]'
/usr/include/c++/11.2.0/type_traits:971:25: required by substitution of 'template<class _Tp, class ... _Args> using __is_nothrow_constructible_impl = std::__bool_constant<__is_nothrow_constructible(_Tp)> [with _Tp = _0xdead4ead::http::base::strand_stream; _Args = {const _0xdead4ead::http::base::strand_stream&}]'
/usr/include/c++/11.2.0/type_traits:1000:12: required from 'struct std::__is_nothrow_copy_constructible_impl<_0xdead4ead::http::base::strand_stream, true>'
/usr/include/c++/11.2.0/type_traits:1006:12: required from 'struct std::is_nothrow_copy_constructible<_0xdead4ead::http::base::strand_stream>'
/libs/boost/include/boost/asio/execution/executor.hpp:124:8: [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/libs/backend/BeastHttp/BeastHttp/include/http/base/traits.hxx:399:55: required from 'constexpr auto _0xdead4ead::http::base::traits::detail::validity_checker<R, F>::operator()(Args&& ...) const [with Args = {main()::<lambda(auto:29, auto:30)>, boost::beast::http::message<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>}; R = void; F = _0xdead4ead::http::base::traits::detail::tryInvoke<void, main()::<lambda(auto:29, auto:30)>, boost::beast::http::message<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared> >(main()::<lambda(auto:29, auto:30)>&&, boost::beast::http::message<true, boost::beast::http::basic_string_body, boost::beast::http::basic_fields<std::allocator > >&&, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>&&)::<lambda(auto:1&&, auto:2&& ...)>]'
/libs/backend/BeastHttp/BeastHttp/include/http/base/traits.hxx:416:13: required from 'constexpr auto _0xdead4ead::http::base::traits::detail::tryInvoke(F&&, Args&& ...) [with R = void; F = main()::<lambda(auto:29, auto:30)>; Args = {boost::beast::http::message<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>}]'
/libs/backend/BeastHttp/BeastHttp/include/http/base/traits.hxx:674:37: required from 'struct _0xdead4ead::http::base::traits::TryInvoke<main()::<lambda(auto:29, auto:30)>, void(boost::beast::http::message<true, boost::beast::http::basic_string_body, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>)>'
/libs/backend/BeastHttp/BeastHttp/include/http/base/traits.hxx:689:55: required from 'constexpr const bool _0xdead4ead::http::base::traits::TryInvokeConjunction<0, void(boost::beast::http::message<true, boost::beast::http::basic_string_body, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>, _0xdead4ead::http::base::cb::const_iterator<_0xdead4ead::http::reactor::session<>, std::function, std::vector>), void(boost::beast::http::message<true, boost::beast::http::basic_string_body, boost::beast::http::basic_fields<std::allocator > >, _0xdead4ead::http::reactor::session<>::context<_0xdead4ead::http::reactor::session<>::flesh, _0xdead4ead::http::reactor::session<boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::parser<true, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, std::allocator >, boost::beast::http::serializer<false, boost::beast::http::basic_string_body<char, std::char_traits, std::allocator >, boost::beast::http::basic_fields<std::allocator > >, boost::beast::basic_flat_buffer<std::allocator >, boost::asio::ip::tcp, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::any_io_executor>, std::chrono::_V2::steady_clock, boost::asio::basic_waitable_timer<std::chrono::_V2::steady_clock, boost::asio::wait_traitsstd::chrono::_V2::steady_clock, boost::asio::any_io_executor>, std::function, std::vector, std::map, std::unordered_map, std::function, std::function>::context_policy::shared>), main()::<lambda(auto:29, auto:30)> >::value'
/libs/backend/BeastHttp/BeastHttp/include/http/base/cb.hxx:137:18: required by substitution of 'template<class F, class ... Fn, class> _0xdead4ead::http::base::cb::storage<_0xdead4ead::http::reactor::session<>, std::function, std::vector>::storage(F&&, Fn&& ...) [with F = main()::<lambda(auto:29, auto:30)>; Fn = {}; = void]'
/libs/backend/BeastHttp/BeastHttp/include/http/basic_router.hxx:59:23: required by substitution of 'template<class ... OnRequest> decltype ((void)((_0xdead4ead::http::basic_router<_0xdead4ead::http::reactor::session<> >::storage_type)((declval)()...))) _0xdead4ead::http::basic_router<_0xdead4ead::http::reactor::session<> >::post<OnRequest ...>(const resource_regex_type&, OnRequest&& ...) & [with OnRequest = {main()::<lambda(auto:29, auto:30)>}]'
main.cpp:32:16: required from here
/libs/boost/include/boost/asio/execution/any_executor.hpp:476:8: error: incomplete type 'boost::asio::execution::is_executor<_0xdead4ead::http::base::strand_stream>' used in nested name specifier
** 476 | struct is_valid_target_executor : **
| ^~~~~~~~~~~~~~~~~~~~~~~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant