От того, что я искал, мой синтаксис верен, но мой компилятор (VS2015) жалуется. Обратите внимание: я использую пространство имен ee с классом Network. Вот кодC++ 11 - передача функции-члена в поток дает: никакая перегруженная функция не принимает 2 аргумента
//code that doens't work
thread clientThread(&ee::Network::clientRun, new ee::Network);
* Примечание: в реальном коде я не называю новым в качестве аргумента, я сделал это здесь, чтобы сократить код.
Я протестировал функции, и они работают, я просто не могу заставить их работать с помощью потока. Вот их подписи.
void serverRun();
void clientRun();
void clientRun(string ip);
Моих ошибки:
Ошибка C2661 'станд :: Тема :: Тема': нет перегруженной функция принимает 2 аргумент
а не экземпляр конструктора «СТД :: thread :: thread "соответствует списку аргументов
У кого-нибудь есть представление о том, что может случиться в этой ситуации?
Возможно, не столь глупый вопрос, вы включили '', верно? Нам здесь не с чем поработать. –
WhozCraig
Это похоже на код ошибки Visual C++ - какую версию вы используете? –
Кроме того, у вас есть проблема двусмысленности. Попробуйте 'void (ee :: Network :: * threadProc)() = & ee :: Network :: clientRun; thread clientThread (threadProc, new ee :: Network); ' –