Bei dem Versuch, diese in Visual C++ zu kompilieren 2015std :: bind() Fehler: kann nicht die Instanz überladene Funktion "boost :: asio :: io_service :: run" bestimmen soll
auto worker = std::bind(&boost::asio::io_service::run, &(this->service));
I‘ m immer Fehler:
error C2783: 'std::_Binder<_Ret,_Fx,_Types...> std::bind(_Fx &&,_Types &&...)': could not deduce template argument for '_Ret'
note: see declaration of 'std::bind'
error C2783: 'std::_Binder<_Ret,_Fx,_Types...> std::bind(_Fx &&,_Types &&...)': could not deduce template argument for '_Fx'
note: see declaration of 'std::bind'
error C2783: 'std::_Binder<std::_Unforced,_Fx,_Types...> std::bind(_Fx &&,_Types &&...)': could not deduce template argument for '_Fx'
note: see declaration of 'std::bind'
Außerdem klagt IntelliSense mit:
cannot determine which instance of overloaded function "boost::asio::io_service::run" is intended
ich sehe, dass es 2 Überlastungen von boost::asio::io_service::run
. Aber wie kann ich angeben, welche zu verwenden?
Mit boost::bind
der Code kompiliert gerade fein:
auto worker = boost::bind(&boost::asio::io_service::run, &(this->service));
Verwenden Sie einfach ein Lambda ...> _> – ildjarn