我有一个函数attandanceArry
。
我想使用boost :: bind创建一个指向该函数的boost函数。这可能吗?编写void __fastcall ClassName::FunctionName()
会产生编译错误“必须调用成员函数或者使用其地址。
一种可行的解决方法是创建一个包装器函数,但这是不可取的,因为它会创建无用的额外代码:
boost::bind(&ClassName::FunctionName, this)
答案 0 :(得分:4)
这可以通过使用宏支持__fastcall
来解决:
#define BOOST_MEM_FN_ENABLE_FASTCALL
#include <boost/bind.hpp>
在此之后,boost :: bind语法按预期工作。
这是一个非便携式扩展程序,因此默认情况下不启用。 Boost::bind documentation