我正在使用phoenix :: bind并收到此错误消息:
错误C2039:'bind':不是会员 '凤凰'
我正在使用bind的代码行和错误指向的位置是:
凤凰::绑定( & OptionalInputPort :: eraseDataEditor) (phoenix :: var(* optionalPort))
我无法弄清楚问题是什么。
凤凰包括这一行:#include boost / spirit / home / phoenix.hpp
感谢。
答案 0 :(得分:1)
phoenix
命名空间 boost
命名空间(就像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;