C++ 卡萨布兰卡没有';不能从公共方法绑定

C++ 卡萨布兰卡没有';不能从公共方法绑定,c++,visual-studio-2013,httplistener,cpprest-sdk,C++,Visual Studio 2013,Httplistener,Cpprest Sdk,作为标题,我有一个可以工作的客户机-服务器应用程序,但现在我尝试重新设计我的软件,使其更加优雅。因此,我创建了一个服务器类来创建http_侦听器并处理POST和GET方法,但此后它就不再工作了。在.h中,我有: class Server { 公众: 服务器(){} { } handle_get是在.c中为test定义的,它可以工作,但我不能支持POST方法。 我还尝试了不同的POST方法初始化,如下所示: m_listener.support(methods::GET, std::bind(&

作为标题,我有一个可以工作的客户机-服务器应用程序,但现在我尝试重新设计我的软件,使其更加优雅。因此,我创建了一个服务器类来创建http_侦听器并处理POST和GET方法,但此后它就不再工作了。在.h中,我有:

class Server
{ 公众: 服务器(){}

{

}

handle_get是在.c中为test定义的,它可以工作,但我不能支持POST方法。 我还尝试了不同的POST方法初始化,如下所示:

m_listener.support(methods::GET, std::bind(&Server::handle_post, this, std::placeholders::_1));
但它不起作用。 建议

m_listener.support(methods::POST, [this](http_request request){ this->handle_post(request); });
看起来更正确。但是,
http\u请求可复制吗?如果不可复制,则需要
std::move
它或通过引用传递


看起来更正确。但是,
http\u请求
可复制吗?如果不可复制,您将需要
std::move
它或通过引用传递。

现在它可以工作了,您能告诉我为什么我的2个“解决方案”不起作用?我在stackoverflow的许多线程中都发现了它们,但没有成功。@kenhero我不熟悉您正在使用的库,但我的第一个想法是您在第一次尝试时没有传递
这个
。现在它起作用了,您能告诉我为什么我的2个“解决方案”不起作用?我在stackoverflow的许多线程中都发现了它们,但没有成功。@kenhero我不熟悉您正在使用的库,但我的第一个想法是您在第一次尝试时没有传递
this
Server::Server(utility::string_t url) : m_listener(url)
m_listener.support(methods::POST, [this](http_request request){return Server::handle_post(request); });
m_listener.support(methods::GET, handle_get);
m_listener.support(methods::GET, std::bind(&Server::handle_post, this, std::placeholders::_1));
m_listener.support(methods::POST, [this](http_request request){ this->handle_post(request); });