【发布时间】:2010-11-23 15:29:35
【问题描述】:
我有成员函数的类:
typedef std::function<bool (const std::string &)> InsertFunction;
bool insertSourceFile( const std::string & );
bool insertSourceDir( const std::string & );
bool insertHeaderFile( const std::string & );
bool insertHeaderDir( const std::string & );
我想在另一个类中引用其中一个InsertFunctions,并用它来完成它的工作(不必为每个函数创建类)。我尝试使用类构造函数和std::bind 将成员函数的隐式第一个参数绑定到相关对象的指针:
new ListParser( p_target->sourceDirs(), bind(&Target::insertSourceFile, p_target, _1), this );
与
ListParser::ListParser( const stringSet &dirs, const InsertFunction &insert,
State* parent = 0 )
: ParserState( parent ),
m_dirs( dirs ),
m_insert( insert )
{ }
更新:感谢@lijie,源代码现在可以编译,但是当调用函数m_insert 时,std::bad_function_call 会抛出一个std::exception。有什么问题?谢谢!如果您需要更多信息,请询问!
【问题讨论】:
标签: c++11 functional-programming