在此示例中,如何将字符串传递给绑定的“处理函数”函数?尝试传递字符串以绑定函数C++
// MyClass.h
class MyClass {
public:
MyClass(ESP8266WebServer& server) : m_server(server);
void begin();
void handler(String path);
protected:
ESP8266WebServer& m_server;
};
// MyClass.cpp
...
void MyClass::begin() {
String edit = "/edit.htm";
m_server.on("/edit", HTTP_GET, std::bind(&MyClass::handleFileRead(edit), this));
...
每哪种方式我试试,我得到:需要
error: lvalue required as unary '&' operand
您正试图*调用*'MyClass :: handler'作为静态成员函数。 –
什么是String类型的完整类型? –
尝试'm_server.on(uri,HTTP_GET,std :: bind(&MyClass :: handler,this,String(uri));'或者,也许lambda会工作,而不是:'String str_uri(uri); m_server.on uri,HTTP_GET,[this,str_uri](){this-> handler(str_uri);});' –