Я довольно новичок в C ++, и, вероятно, у меня над головой, но так оно и есть.
Я работаю с довольно крупным проектом Win32 C ++, который использует Winsock для сетевых коммуникаций. Я пытаюсь преобразовать кучу управления потоками в повышение, но как только я добавлю ссылки на библиотеки повышения и прочее, я получаю около 30 ошибок в этой конкретной строке кода:
bind(mLocalSocketFd, (struct sockaddr *) &localServerAddress, sizeof(localServerAddress));
Ошибки включают в себя такие вещи, как:
error C2602: 'std::tr1::_Result_of2<_Fty,_Farg0,_Farg1>::_Type' is not a member of a base class of 'std::tr1::_Result_of2<_Fty,_Farg0,_Farg1>'
error C2868: 'std::tr1::_Result_of2<_Fty,_Farg0,_Farg1>::_Type' : illegal syntax for using-declaration; expected qualified-name
error C2784: 'bool std::operator <(const std::vector<_Ty,_Ax> &,const std::vector<_Ty,_Ax> &)' : could not deduce template argument for 'const std::vector<_Ty,_Ax> &' from 'std::tr1::_Bind_fty<_Fty,_Ret,_BindN>'
error C2784: 'bool std::operator <(const std::vector<_Ty,_Ax> &,const std::vector<_Ty,_Ax> &)' : could not deduce template argument for 'const std::vector<_Ty,_Ax> &' from 'std::tr1::_Bind_fty<_Fty,_Ret,_BindN>'
Я предполагаю, что каким-то образом мне удалось сказать этому конкретному файлу («NetServer.cpp») использовать улучшенную версию bind (), но я не могу понять, где это происходит. Единственная часть надстройки, которую я использую, - это boost / thread.hpp, и я не использую пространство имен где-либо в NetServer.cpp или в заголовочных файлах, на которые он ссылается.
Есть предложения относительно того, что я делаю неправильно, или как это устранить? Очевидно, это какая-то глупая новичок, но я не могу понять это.