mercredi 1 août 2018

Make zmqpp::socket::connect a std::future

I want to bind an overloaded function to make an std::future
zmqpp::socket::connect is created like that:

void    connect (endpoint_t const &endpoint)


The first thing i did was that:
auto binded_connect = std::bind(&zmqpp::socket::connect, socket, endpoint);

But that was bad because zmqpp::socket::connect is an overloaded function.
So I casted the connect function.

auto binded_connect = std::bind(static_cast<void(zmqpp::socket::*)(zmqpp::endpoint_t const&)>(&zmqpp::socket::connect), socket, endpoint);


The thing is g++ don't like that.
He says a lot of things about tuple but i think the most important is :

/usr/include/c++/8/functional:467:70: error: no matching function for call to ‘std::tuple<zmqpp::socket, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::tuple(zmqpp::socket&, const std::__cxx11::basic_string<char>&)’

So I don't really know what to do right now, I have no ideas where search to find answer.
I'm also sorry for bad english, not main language.

Thanks in advice.

Aucun commentaire:

Enregistrer un commentaire