我正在使用 phoenix::bind 并收到此错误消息:
错误 C2039:“绑定”:不是“凤凰”的成员
我使用绑定和错误指向的代码行是:
phoenix::bind( &OptionalInputPort::eraseDataEditor ) ( phoenix::var( *optionalPort ) )
我不知道是什么问题。
phoenix include 是这一行:#include boost/spirit/home/phoenix.hpp
谢谢。
我正在使用 phoenix::bind 并收到此错误消息:
错误 C2039:“绑定”:不是“凤凰”的成员
我使用绑定和错误指向的代码行是:
phoenix::bind( &OptionalInputPort::eraseDataEditor ) ( phoenix::var( *optionalPort ) )
我不知道是什么问题。
phoenix include 是这一行:#include boost/spirit/home/phoenix.hpp
谢谢。
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;
如果你使用了大量来自 Phoenix 的东西,你可以从那个命名空间中引入所有东西,尽管这可能会产生意想不到的后果,因为它会包含你甚至不知道存在的东西,并且可能会干扰你自己的代码.
using namespace boost::phoenix;