在此示例中,如何將字符串傳遞給綁定的「處理函數」函數?嘗試傳遞字符串以綁定函數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);});' –