Naios / continuable

C++14 asynchronous allocation aware futures (supporting then, exception handling, coroutines and connections)
https://naios.github.io/continuable/
MIT License
815 stars 44 forks source link

cti::promisify + ASIO = compilitation error #26

Closed G10h4ck closed 4 years ago

G10h4ck commented 4 years ago

@Naios

I am trying to use continuable along with non-boost ASIO library, my understanding about async, and template programming is not comparable with yours, and I haven't been successful up until now, so I have been fiddling with the examples but I get compiler error I haven't been able to solve.

so in my class I have this members

    asio::io_service mIoService;
    asio::ip::udp::resolver mResolver;
    asio::ip::tcp::socket mControlSocket;

then I have been defining some methods, one of them almost copy-pasted from continuable documentation is this:

    auto async_resolve(const asio::ip::udp::endpoint& endpoint)
    {
        return cti::promisify<asio::ip::udp::resolver::iterator>::with(
                    [](auto&& promise, auto&& e, auto&&... args)
        {
            if (e) promise.set_exception(std::forward<decltype(e)>(e));
            else promise.set_value(std::forward<decltype(args)>(args)...);
        },
        [&](auto&&... args)
        {
            mResolver.async_resolve(std::forward<decltype(args)>(args)...);
        },
        std::move(endpoint));
    }

but when I try to compile i get the following errors:

../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx: In constructor ‘TorProcess::TorProcess()’:
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:205:24: warning: ‘TorProcess::mControlSocket’ will be initialized after [-Wreorder]
  asio::ip::tcp::socket mControlSocket;
                        ^~~~~~~~~~~~~~
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:204:26: warning:   ‘asio::ip::udp::resolver TorProcess::mResolver’ [-Wreorder]
  asio::ip::udp::resolver mResolver;
                          ^~~~~~~~~
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:54:2: warning:   when initialized here [-Wreorder]
  TorProcess():
  ^~~~~~~~~~
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx: In instantiation of ‘TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)> [with auto:59 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >; auto:60 = const std::error_code&; auto:61 = {const asio::ip::basic_resolver_iterator<asio::ip::udp>&}]’:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:81:31:   required from ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)> mutable [with auto:55 = {const std::error_code&, const asio::ip::basic_resolver_iterator<asio::ip::udp>&}]’
/usr/include/asio/detail/handler_type_requirements.hpp:107:9:   required by substitution of ‘template<class Handler, class Arg1, class Arg2> decltype (((sizeof ((Handler)(static_cast<const Handler&>(h))), h((* a1), (* a2))), (char)(0))) asio::detail::two_arg_handler_test(Handler, Arg1*, Arg2*) [with Handler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>; Arg1 = const std::error_code; Arg2 = const asio::ip::basic_resolver_iterator<asio::ip::udp>]’
/usr/include/asio/ip/basic_resolver.hpp:255:5:   required from ‘typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type asio::ip::basic_resolver<InternetProtocol, ResolverService>::async_resolve(const endpoint_type&, ResolveHandler&&) [with ResolveHandler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>; InternetProtocol = asio::ip::udp; ResolverService = asio::ip::resolver_service<asio::ip::udp>; typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type = void; asio::ip::basic_resolver<InternetProtocol, ResolverService>::endpoint_type = asio::ip::basic_endpoint<asio::ip::udp>]’
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:196:4:   required from ‘TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)> [with auto:62 = {const asio::ip::basic_endpoint<asio::ip::udp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/util.hpp:179:49:   required by substitution of ‘template<class Callable, class ... Args> constexpr decltype (forward<Callable>(callable)((forward<Args>)(cti::detail::util::invoke::args)...)) cti::detail::util::invoke(Callable&&, Args&& ...) [with Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:86:29:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:174:7:   required from ‘cti::continuable_base<Data, Annotation>::~continuable_base() [with Data = cti::detail::base::proxy_continuable<cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> >; Annotation = cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:167:58:   required from ‘static auto cti::detail::base::attorney::create_from(T&&, Hint, cti::detail::util::ownership) [with T = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)>; Hint = cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:851:45:   required from ‘constexpr auto cti::make_continuable(Continuation&&) [with Args = {asio::ip::basic_resolver_iterator<asio::ip::udp>}; Continuation = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:69:39:   required from ‘static auto cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-promisify.hpp:112:33:   required from ‘static auto cti::promisify<Result>::with(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]’
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:198:22:   required from here
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:191:11: error: no matching function for call to ‘cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >::set_exception(const std::error_code&)’
    if (e) promise.set_exception(std::forward<decltype(e)>(e));
           ^~~~~~~
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-aggregated.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-all.hpp:41,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:40,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:48,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:736:8: note: candidate: ‘void cti::detail::base::callbacks::final_callback<Args>::set_exception(cti::exception_t) [with Args = {asio::ip::basic_resolver_iterator<asio::ip::udp>}; cti::exception_t = std::error_condition]’
   void set_exception(exception_t exception) noexcept {
        ^~~~~~~~~~~~~
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:736:8: note:   no known conversion for argument 1 from ‘const std::error_code’ to ‘cti::exception_t’ {aka ‘std::error_condition’}
In file included from /usr/include/asio/impl/io_service.hpp:18,
                 from /usr/include/asio/io_service.hpp:765,
                 from /usr/include/asio/basic_io_object.hpp:19,
                 from /usr/include/asio/basic_socket.hpp:20,
                 from /usr/include/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/asio.hpp:19,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/ip/basic_resolver.hpp: In instantiation of ‘typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type asio::ip::basic_resolver<InternetProtocol, ResolverService>::async_resolve(const endpoint_type&, ResolveHandler&&) [with ResolveHandler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>; InternetProtocol = asio::ip::udp; ResolverService = asio::ip::resolver_service<asio::ip::udp>; typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type = void; asio::ip::basic_resolver<InternetProtocol, ResolverService>::endpoint_type = asio::ip::basic_endpoint<asio::ip::udp>]’:
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:196:4:   required from ‘TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)> [with auto:62 = {const asio::ip::basic_endpoint<asio::ip::udp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/util.hpp:179:49:   required by substitution of ‘template<class Callable, class ... Args> constexpr decltype (forward<Callable>(callable)((forward<Args>)(cti::detail::util::invoke::args)...)) cti::detail::util::invoke(Callable&&, Args&& ...) [with Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:86:29:   required from ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/traits.hpp:96:42:   required by substitution of ‘template<class U, class F, long unsigned int ...I> constexpr decltype (forward<U>(unpacker)((get<I>)((forward<F>)(cti::detail::traits::detail_unpack::unpack_impl::first_sequenceable))...)) cti::detail::traits::detail_unpack::unpack_impl(U&&, F&&, std::integer_sequence<long unsigned int, I ...>) [with U = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)>; F = std::tuple<TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp> >; long unsigned int ...I = {0, 1}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/traits.hpp:112:43:   required by substitution of ‘template<class Callable, class TupleLike, class Sequence> constexpr decltype (cti::detail::traits::detail_unpack::unpack_impl(forward<Callable>(obj), forward<TupleLike>(tuple_like), Sequence{})) cti::detail::traits::unpack(Callable&&, TupleLike&&) [with Callable = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)>; TupleLike = std::tuple<TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp> >; Sequence = std::integer_sequence<long unsigned int, 0, 1>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:74:25:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:174:7:   required from ‘cti::continuable_base<Data, Annotation>::~continuable_base() [with Data = cti::detail::base::proxy_continuable<cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> >; Annotation = cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:167:58:   required from ‘static auto cti::detail::base::attorney::create_from(T&&, Hint, cti::detail::util::ownership) [with T = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)>; Hint = cti::detail::identity<asio::ip::basic_resolver_iterator<asio::ip::udp> >]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:851:45:   required from ‘constexpr auto cti::make_continuable(Continuation&&) [with Args = {asio::ip::basic_resolver_iterator<asio::ip::udp>}; Continuation = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:69:39:   required from ‘static auto cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-promisify.hpp:112:33:   required from ‘static auto cti::promisify<Result>::with(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]’
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:198:22:   required from here
/usr/include/asio/ip/basic_resolver.hpp:255:5: error: use of deleted function ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>&)’
     ASIO_RESOLVE_HANDLER_CHECK(
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-promisify.hpp:36,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:54,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:78:22: note: ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>&)’ is implicitly deleted because the default definition would be ill-formed:
                 auto callback =
                      ^~~~~~~~
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:78:22: error: use of deleted function ‘cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >::final_callback(const cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >&)’
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-aggregated.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-all.hpp:41,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:40,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:48,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:707:8: note: ‘cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >::final_callback(const cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >&)’ is implicitly deleted because the default definition would be ill-formed:
 struct final_callback : util::non_copyable {
        ^~~~~~~~~~~~~~
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:707:8: error: use of deleted function ‘cti::detail::util::non_copyable::non_copyable(const cti::detail::util::non_copyable&)’
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/result-trait.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-result.hpp:38,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:48,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/util.hpp:209:3: note: declared here
   non_copyable(non_copyable const&) = delete;
   ^~~~~~~~~~~~
In file included from /usr/include/asio/impl/io_service.hpp:18,
                 from /usr/include/asio/io_service.hpp:765,
                 from /usr/include/asio/basic_io_object.hpp:19,
                 from /usr/include/asio/basic_socket.hpp:20,
                 from /usr/include/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/asio.hpp:19,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/detail/handler_type_requirements.hpp:111:8: note:   initializing argument 1 of ‘char (& asio::detail::two_arg_handler_test(Handler, ...))[2] [with Handler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>]’
 char (&two_arg_handler_test(Handler, ...))[2];
        ^~~~~~~~~~~~~~~~~~~~
/usr/include/asio/ip/basic_resolver.hpp:162:5: error: use of deleted function ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>&)’
     ASIO_RESOLVE_HANDLER_CHECK(
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/asio/detail/handler_type_requirements.hpp:126:28: note:   initializing argument 1 of ‘char asio::detail::argbyv(T) [with T = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>]’
 template <typename T> char argbyv(T);
                            ^~~~~~
In file included from /usr/include/asio/ip/basic_resolver.hpp:25,
                 from /usr/include/asio.hpp:62,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/ip/resolver_service.hpp: At global scope:
/usr/include/asio/ip/resolver_service.hpp:142:3: error: ‘typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type asio::ip::resolver_service<InternetProtocol>::async_resolve(asio::ip::resolver_service<InternetProtocol>::implementation_type&, const endpoint_type&, ResolveHandler&&) [with ResolveHandler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>; InternetProtocol = asio::ip::udp; typename asio::async_result<typename asio::handler_type<ResolveHandler, void(std::error_code, asio::ip::basic_resolver_iterator<Protocol>)>::type>::type = void; asio::ip::resolver_service<InternetProtocol>::implementation_type = std::shared_ptr<void>; asio::ip::resolver_service<InternetProtocol>::endpoint_type = asio::ip::basic_endpoint<asio::ip::udp>]’, declared using local type ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::async_resolve(const endpoint&)::<lambda(auto:59&&, auto:60&&, auto:61&& ...)>; Callable = TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::udp>}; Result = {asio::ip::basic_resolver_iterator<asio::ip::udp>}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<asio::ip::basic_resolver_iterator<asio::ip::udp> >]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::async_resolve(const endpoint&)::<lambda(auto:62&& ...)>, const asio::ip::basic_endpoint<asio::ip::udp>}]::<lambda(auto:55&& ...)>’, is used but never defined [-fpermissive]
   async_resolve(implementation_type& impl, const endpoint_type& endpoint,
   ^~~~~~~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
make[1]: Leaving directory '/home/gio/Builds/RetroShare-Desktop-Debug/libretroshare/src'
make[1]: *** [Makefile.libretroshare:13825: temp/linux-g++/obj/tortransport.o] Error 1
make: *** [Makefile:128: sub-libretroshare-src-libretroshare-pro-make_first] Error 2
16:42:49: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project RetroShare (kit: Desktop)
When executing step "Make"
16:42:49: Elapsed time: 00:03.

While trying to understand were the error came from I have been fiddling with other methods, but with each of them I have been getting similar errors, I attach those method definitions + compile errors here for completeness

    auto connect(const asio::ip::tcp::endpoint& endpoint)
    {
        return cti::promisify<void>::with(
        [](auto&& promise, const asio::error_code& e)
        {
            if(e) promise.set_exception(cti::exception_t(e.value(), e.category()));
            else promise.set_value();
        },
        [this](auto&&... args)
        {
            mControlSocket.async_connect(std::forward<decltype(args)>(args)...);
        },
        std::move(endpoint) );

        //return mControlSocket.async_connect(endpoint,[](asio::error_code){});
    }

compile errors:

../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx: In constructor ‘TorProcess::TorProcess()’:
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:206:24: warning: ‘TorProcess::mControlSocket’ will be initialized after [-Wreorder]
  asio::ip::tcp::socket mControlSocket;
                        ^~~~~~~~~~~~~~
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:205:26: warning:   ‘asio::ip::udp::resolver TorProcess::mResolver’ [-Wreorder]
  asio::ip::udp::resolver mResolver;
                          ^~~~~~~~~
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:54:2: warning:   when initialized here [-Wreorder]
  TorProcess():
  ^~~~~~~~~~
In file included from /usr/include/asio/impl/io_service.hpp:18,
                 from /usr/include/asio/io_service.hpp:765,
                 from /usr/include/asio/basic_io_object.hpp:19,
                 from /usr/include/asio/basic_socket.hpp:20,
                 from /usr/include/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/asio.hpp:19,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/basic_socket.hpp: In instantiation of ‘typename asio::async_result<typename asio::handler_type<ConnectHandler, void(std::error_code)>::type>::type asio::basic_socket<Protocol, SocketService>::async_connect(const endpoint_type&, ConnectHandler&&) [with ConnectHandler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>; Protocol = asio::ip::tcp; SocketService = asio::stream_socket_service<asio::ip::tcp>; typename asio::async_result<typename asio::handler_type<ConnectHandler, void(std::error_code)>::type>::type = void; asio::basic_socket<Protocol, SocketService>::endpoint_type = asio::ip::basic_endpoint<asio::ip::tcp>]’:
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:179:4:   required from ‘TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)> [with auto:60 = {const asio::ip::basic_endpoint<asio::ip::tcp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/util.hpp:179:49:   required by substitution of ‘template<class Callable, class ... Args> constexpr decltype (forward<Callable>(callable)((forward<Args>)(cti::detail::util::invoke::args)...)) cti::detail::util::invoke(Callable&&, Args&& ...) [with Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:86:29:   required from ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/traits.hpp:96:42:   required by substitution of ‘template<class U, class F, long unsigned int ...I> constexpr decltype (forward<U>(unpacker)((get<I>)((forward<F>)(cti::detail::traits::detail_unpack::unpack_impl::first_sequenceable))...)) cti::detail::traits::detail_unpack::unpack_impl(U&&, F&&, std::integer_sequence<long unsigned int, I ...>) [with U = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)>; F = std::tuple<TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp> >; long unsigned int ...I = {0, 1}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/traits.hpp:112:43:   required by substitution of ‘template<class Callable, class TupleLike, class Sequence> constexpr decltype (cti::detail::traits::detail_unpack::unpack_impl(forward<Callable>(obj), forward<TupleLike>(tuple_like), Sequence{})) cti::detail::traits::unpack(Callable&&, TupleLike&&) [with Callable = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)>; TupleLike = std::tuple<TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp> >; Sequence = std::integer_sequence<long unsigned int, 0, 1>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:74:25:   [ skipping 5 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:174:7:   required from ‘cti::continuable_base<Data, Annotation>::~continuable_base() [with Data = cti::detail::base::proxy_continuable<cti::detail::identity<>, cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> >; Annotation = cti::detail::identity<>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:167:58:   required from ‘static auto cti::detail::base::attorney::create_from(T&&, Hint, cti::detail::util::ownership) [with T = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)>; Hint = cti::detail::identity<>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:851:45:   required from ‘constexpr auto cti::make_continuable(Continuation&&) [with Args = {void}; Continuation = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)>]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:69:39:   required from ‘static auto cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]’
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-promisify.hpp:112:33:   required from ‘static auto cti::promisify<Result>::with(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]’
../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:181:23:   required from here
/usr/include/asio/basic_socket.hpp:754:5: error: use of deleted function ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>&)’
     ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check;
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-promisify.hpp:36,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:54,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:78:22: note: ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>&)’ is implicitly deleted because the default definition would be ill-formed:
                 auto callback =
                      ^~~~~~~~
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/other/promisify.hpp:78:22: error: use of deleted function ‘cti::detail::base::callbacks::final_callback<>::final_callback(const cti::detail::base::callbacks::final_callback<>&)’
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-aggregated.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/connection/connection-all.hpp:41,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:40,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:48,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:707:8: note: ‘cti::detail::base::callbacks::final_callback<>::final_callback(const cti::detail::base::callbacks::final_callback<>&)’ is implicitly deleted because the default definition would be ill-formed:
 struct final_callback : util::non_copyable {
        ^~~~~~~~~~~~~~
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/core/base.hpp:707:8: error: use of deleted function ‘cti::detail::util::non_copyable::non_copyable(const cti::detail::util::non_copyable&)’
In file included from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/result-trait.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-result.hpp:38,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable-base.hpp:39,
                 from ../../../../Development/rs-develop/supportlibs/continuable/include/continuable/continuable.hpp:48,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:31:
../../../../Development/rs-develop/supportlibs/continuable/include/continuable/detail/utility/util.hpp:209:3: note: declared here
   non_copyable(non_copyable const&) = delete;
   ^~~~~~~~~~~~
In file included from /usr/include/asio/impl/io_service.hpp:18,
                 from /usr/include/asio/io_service.hpp:765,
                 from /usr/include/asio/basic_io_object.hpp:19,
                 from /usr/include/asio/basic_socket.hpp:20,
                 from /usr/include/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/asio.hpp:19,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/detail/handler_type_requirements.hpp:101:8: note:   initializing argument 1 of ‘char (& asio::detail::one_arg_handler_test(Handler, ...))[2] [with Handler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>]’
 char (&one_arg_handler_test(Handler h, ...))[2];
        ^~~~~~~~~~~~~~~~~~~~
/usr/include/asio/basic_socket.hpp:754:5: error: use of deleted function ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>::<lambda>(const cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>&)’
     ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check;
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/asio/detail/handler_type_requirements.hpp:126:28: note:   initializing argument 1 of ‘char asio::detail::argbyv(T) [with T = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>]’
 template <typename T> char argbyv(T);
                            ^~~~~~
In file included from /usr/include/asio.hpp:18,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/async_result.hpp: At global scope:
/usr/include/asio/async_result.hpp:59:12: error: ‘asio::detail::async_result_init<Handler, Signature>::async_result_init(Handler&&) [with Handler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>; Signature = void(std::error_code)]’, declared using local type ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>’, is used but never defined [-fpermissive]
   explicit async_result_init(ASIO_MOVE_ARG(Handler) orig_handler)
            ^~~~~~~~~~~~~~~~~
In file included from /usr/include/asio/detail/wrapped_handler.hpp:18,
                 from /usr/include/asio/io_service.hpp:24,
                 from /usr/include/asio/basic_io_object.hpp:19,
                 from /usr/include/asio/basic_socket.hpp:20,
                 from /usr/include/asio/basic_datagram_socket.hpp:20,
                 from /usr/include/asio.hpp:19,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/detail/bind_handler.hpp:100:31: error: ‘asio::detail::binder1<Handler, Arg1> asio::detail::bind_handler(Handler, const Arg1&) [with Handler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>; Arg1 = std::error_code]’, declared using local type ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>’, is used but never defined [-fpermissive]
 inline binder1<Handler, Arg1> bind_handler(Handler handler,
                               ^~~~~~~~~~~~
In file included from /usr/include/asio/basic_socket_streambuf.hpp:28,
                 from /usr/include/asio/basic_socket_iostream.hpp:24,
                 from /usr/include/asio.hpp:27,
                 from ../../../../Development/rs-develop/libretroshare/src/pluggabletransports/tortransport.cxx:28:
/usr/include/asio/stream_socket_service.hpp:223:3: error: ‘typename asio::async_result<typename asio::handler_type<ConnectHandler, void(std::error_code)>::type>::type asio::stream_socket_service<Protocol>::async_connect(asio::stream_socket_service<Protocol>::implementation_type&, const endpoint_type&, ConnectHandler&&) [with ConnectHandler = cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>; Protocol = asio::ip::tcp; typename asio::async_result<typename asio::handler_type<ConnectHandler, void(std::error_code)>::type>::type = void; asio::stream_socket_service<Protocol>::implementation_type = asio::detail::reactive_socket_service<asio::ip::tcp>::implementation_type; asio::stream_socket_service<Protocol>::endpoint_type = asio::ip::basic_endpoint<asio::ip::tcp>]’, declared using local type ‘cti::detail::convert::promisify_helper<Result>::from(Resolver&&, Callable&&, Args&& ...) [with Resolver = TorProcess::connect(const endpoint&)::<lambda(auto:59&&, const error_code&)>; Callable = TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>; Args = {const asio::ip::basic_endpoint<asio::ip::tcp>}; Result = {void}]::<lambda(auto:53&&)> mutable [with auto:53 = cti::detail::base::callbacks::final_callback<>]::<lambda(auto:54&& ...)> mutable [with auto:54 = {TorProcess::connect(const endpoint&)::<lambda(auto:60&& ...)>, const asio::ip::basic_endpoint<asio::ip::tcp>}]::<lambda(auto:55&& ...)>’, is used but never defined [-fpermissive]
   async_connect(implementation_type& impl,
   ^~~~~~~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
make[1]: Leaving directory '/home/gio/Builds/RetroShare-Desktop-Debug/libretroshare/src'
make[1]: *** [Makefile.libretroshare:13825: temp/linux-g++/obj/tortransport.o] Error 1
make: *** [Makefile:128: sub-libretroshare-src-libretroshare-pro-make_first] Error 2
16:47:44: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project RetroShare (kit: Desktop)
When executing step "Make"
16:47:44: Elapsed time: 00:03.

In this latter case ASIO apparently complain of the callback type not being the expected one. The compiler I am using is GCC 8.3.0

Thanks for sharing this library and for the help!

Naios commented 4 years ago

Hey, did you set CONTINUABLE_WITH_NO_EXCEPTIONS or CONTINUABLE_WITH_CUSTOM_ERROR_TYPE as described in https://naios.github.io/continuable/configuration.html? By default continuable uses std::exception_ptr as cti::exception_t and needs to be configured to use a custom value error type like std::error_condition through a preprocessor define.

G10h4ck commented 4 years ago

I have set CONTINUABLE_WITH_NO_EXCEPTIONS but not CONTINUABLE_WITH_CUSTOM_ERROR_TYPE should I set that too?

Naios commented 4 years ago

CONTINUABLE_WITH_NO_EXCEPTIONS will set cti::exception_t to std::error_condition.

What I would suggest is that you outcomment your solution step by step to narrow the error source:

auto async_resolve(const asio::ip::udp::endpoint& endpoint)
    {
        return cti::promisify<asio::ip::udp::resolver::iterator>::with(
                    [](auto&& promise, auto&& e, auto&&... args)
        {
            /*if (e) promise.set_exception(std::forward<decltype(e)>(e));
            else promise.set_value(std::forward<decltype(args)>(args)...);*/
        },
        [&](auto&&... args)
        {
            // mResolver.async_resolve(std::forward<decltype(args)>(args)...);
        },
        std::move(endpoint));
    }
G10h4ck commented 4 years ago

The line triggering the error is apparently just this one mControlSocket.async_connect(std::forward<decltype(args)>(args)...); commenting that compilation is successful. Even commenting the other two and leaving only that one there the compilation fail.

Naios commented 4 years ago

Did you take a look at the example with the standalone boost? it looks quite similar https://github.com/Naios/continuable/blob/master/examples/example-asio/example-asio.cpp and I don't see any issue with your code from the continuable side, are the async_connect parameters correct?

G10h4ck commented 4 years ago

I have wrote that code looking at the example you pointed, sadly the example fails compiling too http://dpaste.com/3W219QC

Naios commented 4 years ago

/home/gio/Builds/continuable/examples/example-asio/example-asio.cpp:62:9: error: ‘io_context’ in namespace ‘asio’ does not name a type this should be present in the version which is set as test dependency. in the example. Also the example is built in the CI ans should definitly be buildable as shown by latest CI builds.

G10h4ck commented 4 years ago

Thanks for pointing this out! So it end up being the very simple problem of having an old ASIO version ( 1.10.8 ) installed on my system, while the one shipped as dependency is ( asio-1-12-0-184-g0a52abce ) so I have upgraded my system version to latest available in my distro ( 1.14.0 ) and now it compile without complains. As usual compiler error messages when making big use of C++ meta-programing doesn't help much :-.

Thanks for help again!