id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 12115,Boost.Asio compile error on Visual Studio 2015 Update 2,Sergey Svistunov ,chris_kohlhoff,"I just upgraded to VS 2015 Update 2 and boost/asio/basic_io_object.hpp fails to compile on it. Downgrading to VS 2015 Update 1 fixed this issue for me. {{{ 1>include\boost/asio/basic_io_object.hpp(45): error C2064: term does not evaluate to a function taking 2 arguments 1> include\boost/asio/ip/basic_resolver.hpp(45): note: see reference to class template instantiation 'boost::asio::detail::service_has_move' being compiled 1> with 1> [ 1> IoObjectService=boost::asio::ip::resolver_service 1> ] 1> C:\work\uninav\src\private\nav_mail\MailClient.cpp(175): note: see reference to class template instantiation 'boost::asio::ip::basic_resolver>' being compiled 1> with 1> [ 1> InternetProtocol=boost::asio::ip::tcp 1> ] }}} Compile error in basic_io_object.hpp:45 at ""service_has_move::eval("" {{{ #!cpp #if defined(BOOST_ASIO_HAS_MOVE) namespace detail { // Type trait used to determine whether a service supports move. template class service_has_move { private: typedef IoObjectService service_type; typedef typename service_type::implementation_type implementation_type; template static auto eval(T* t, U* u) -> decltype(t->move_construct(*u, *u), char()); static char (&eval(...))[2]; public: static const bool value = sizeof(service_has_move::eval( static_cast(0), static_cast(0))) == 1; }; } #endif // defined(BOOST_ASIO_HAS_MOVE) }}}",Bugs,new,To Be Determined,asio,Boost 1.60.0,Problem,,,