使用boost :: bind和__fastcall

时间:2016-02-23 06:53:57

标签: c++ boost c++builder-xe8

我有一个函数attandanceArry

我想使用boost :: bind创建一个指向该函数的boost函数。这可能吗?编写void __fastcall ClassName::FunctionName()会产生编译错误“必须调用成员函数或者使用其地址

一种可行的解决方法是创建一个包装器函数,但这是不可取的,因为它会创建无用的额外代码:

boost::bind(&ClassName::FunctionName, this)

1 个答案:

答案 0 :(得分:4)

这可以通过使用宏支持__fastcall来解决:

#define BOOST_MEM_FN_ENABLE_FASTCALL
#include <boost/bind.hpp>

在此之后,boost :: bind语法按预期工作。

这是一个非便携式扩展程序,因此默认情况下不启用。 Boost::bind documentation