必须调用函子 ->对非静态成员函数的引用
Functor -> reference to non-static member function must be called
我有一个我试图指出的成员函数的类,问题是我继续遇到此错误 reference to non-static member function must be called
,这是我的理解是需要指向成员函数。问题是,当我尝试使用此解决方案时,编译器会抱怨,因为there is no viable conversion from 'void (Foo::*) (const List&) to std::function<void (const List &)>
这是我的Foo
类:
class Foo {
public:
int Run( int port);
void HandleRequest(HTTPServerRequest* request);
private:
int num_ports;
void callback_method(const List& );
}; //class Foo
void Foo::HandleRequest(HTTPServerRequest* request){
std::function<void (const List&)> functor = callback_method;
}
您可以这样做:
void Foo::HandleRequest(HTTPServerRequest* request){
std::function<void (const List&)> functor =
std::bind(&Foo::callback_method, this, std::placeholders::_1);
}
或:
void Foo::HandleRequest(HTTPServerRequest* request){
std::function<void (const List&)> functor =
[this](const List& list){callback_method(list);};
}
相关文章:
- 如何在C++中使用非静态成员函数作为回调函数
- 静态成员函数使用相同的名称时出现模板类型名称错误
- 在 nullptr 上调用无状态类的非静态成员函数是否合法?
- 为什么传递非静态成员函数会导致编译错误?
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 非静态成员函数的 decltype 格式不正确吗?
- std::异步与非静态成员函数
- C++无效使用非静态成员函数?
- 未使用的C++未优化的静态成员函数/变量
- C++:如何返回指向非静态成员函数的指针?
- 使用静态成员函数而不是普通函数是否有任何开销?
- 在 stream_descriptor::async_wait 中无效使用非静态成员函数
- 为什么我不能像这样在静态成员函数中调用静态成员变量?
- 无法在clang Linux中分配非静态成员函数,但我可以在Visual Studio Windows中分配
- 在类定义中推导内联静态成员函数的返回类型
- `enable_if()`以禁用模板化类的静态成员函数声明
- 错误:无效使用非静态成员函数"int test::hotplug_callback(libusb_contex
- 常量静态成员函数
- 使用 vector.sort() 的非静态成员函数无效使用
- 从静态成员函数访问私有非静态类变量 - C++