2009-08-14 91 views
0

我使用凤::绑定和接收此错误消息:错误升压凤::绑定编译

错误C2039:“绑定”:不是“凤”

的成员

的代码行,其中我使用绑定并且其中所述错误指向是:

凤::绑定( & OptionalInputPort :: eraseDataEditor) (phoenix :: var(* optionalPort))

我不知道是什么问题。

凤包括是这一行:#包括升压/精神/家庭/ phoenix.hpp

感谢。

回答

1

phoenix命名空间是boost命名空间(就像一切都在加速其他)。

boost::phoenix::bind(&OptionalInputPort::eraseDataEditor) (boost::phoenix::var(*optionalPort)) 

为了避免所有打字,你可以用这篇序言的C++文件来创建一个命名空间别名

namespace phoenix = boost::phoenix; 

然后你原来的代码应工作。如果您使用bind很多,你可以告诉你的编译器,当你说bind,你指的是一个在boost::phoenix

using boost::phoenix::bind; 

如果您使用很多东西从凤凰城,你可以只引入该命名空间中的所有内容,尽管这会带来意想不到的后果,因为它会包含您甚至不知道存在的内容,并且可能会干扰您自己的代码。

using namespace boost::phoenix;