C++ 项不计算为带1个参数的函数
因此,我一直在使用多线程编写一些客户机-服务器代码,并编写了以下函数:C++ 项不计算为带1个参数的函数,c++,multithreading,visual-studio,client-server,C++,Multithreading,Visual Studio,Client Server,因此,我一直在使用多线程编写一些客户机-服务器代码,并编写了以下函数: void TriviaServer::accept() { // this accepts the client and create a specific socket from server to this client SOCKET client_socket = ::accept(_socket, NULL, NULL); if (client_socket == INVALI
void TriviaServer::accept()
{
// this accepts the client and create a specific socket from server to this client
SOCKET client_socket = ::accept(_socket, NULL, NULL);
if (client_socket == INVALID_SOCKET)
throw std::exception(__FUNCTION__);
// make a thread that will handle the new client
std::thread t(&TriviaServer::clientHandler, this, client_socket);
t.detach();
}
Visual Studio表示问题在于:
错误c2064:项的计算结果不是采用1参数的函数
我知道有一个问题与我给出的名字相同,但我没有在答案中看到答案
Handle Client函数由以下行声明:
void clientHandler(SOCKET);
错误发生在我更改行之后:
std::thread t(&TriviaServer::clientHandler, this, client_socket);
此函数在每次接受新客户机并使用clientHandler处理他时被调用为infinity,此函数位于名为TriviaServer的类中。不将常量char*
或std::string
作为参数。您必须使用另一个异常类,如,它提供了这样一个构造函数
如果愿意,您也可以提供自己的异常类。@Carcigenicate我看到了您正在谈论的这篇文章,但我的问题没有答案,正如我上面所说的。@Carcigenicate看起来不对劲。@TalSokolinsky你确定这是你唯一改变的一行吗?@TalSokolinsky你能把它编辑成一个?@Carcigenicate的头脑,收回投票来结束它吗?我试着改变例外,但没有成功,即使在我删除了抛出异常的那一行之后,原始错误仍然存在。@TalSokolinsky那么您必须提供一个,因为我看不到任何其他无法编译的内容。