boost phoenix::bind 编译时出错

发布于 2024-08-01 16:50:55 字数 351 浏览 9 评论 0原文

我正在使用 phoenix::bind 并收到此错误消息:

错误 C2039:“绑定”:不是成员 '凤凰'

我使用绑定和错误指向的代码行是:

凤凰::绑定( &可选输入端口::擦除数据编辑器) ( phoenix::var( *可选端口 ) )

,我不知道问题出在哪里。

phoenix 包含的是这一行:#include boost/spirit/home/phoenix.hpp

谢谢。

I'm using phoenix::bind and receiving this error message:

error C2039: 'bind' : is not a member
of 'phoenix'

The code line where I'm using bind and where the error is pointing is:

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

and I can't figure out what is the problem.

the phoenix include is this line: #include boost/spirit/home/phoenix.hpp

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

网名女生简单气质 2024-08-08 16:50:55

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;

The phoenix namespace is inside the boost namespace (just like everything else in Boost).

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

To avoid all that typing, you could preface your C++ file with this to create a namespace alias:

namespace phoenix = boost::phoenix;

Then your original code should work. If you're using bind a lot, you could tell your compiler that when you say bind, you mean the one in boost::phoenix:

using boost::phoenix::bind;

If you're using lots of stuff from Phoenix, you could just bring in everything from that namespace, although that can have unintended consequences since it will include the stuff that you didn't even know existed, and that could interfere with your own code.

using namespace boost::phoenix;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文