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那么您必须提供一个,因为我看不到任何其他无法编译的内容。