增强融合问题

发布于 2024-11-17 01:34:21 字数 643 浏览 5 评论 0原文

我在编译以下内容时遇到问题(我是 fusion 的新手)。特别是,我不确定“_”(在 is_same 中)来自哪里?来自 boost::lambda?提升::mpl?我需要什么来编译它?

template <typename T>
struct check
{ 
  const T& value;

  check(const T& v) : value(v) {}

  template <typename X>
  bool operator()(const fusion::pair<X,T>& data) const
  {
    return data.second == value;
  }
};

template <typename T1, typename T2, typename P>
bool new_match(const P& p, const T2& values)
{
  fusion::for_each(fusion::filter_if<boost::is_same<_, T2> >(p), check(values));
  return true; // not finished, just trying to compile
}

谢谢!

I'm having trouble compiling the following (I'm new at fusion). In particular, I'm not sure where "_" (in is_same) comes from? From boost::lambda? Boost::mpl? What include do I need for this to compile?

template <typename T>
struct check
{ 
  const T& value;

  check(const T& v) : value(v) {}

  template <typename X>
  bool operator()(const fusion::pair<X,T>& data) const
  {
    return data.second == value;
  }
};

template <typename T1, typename T2, typename P>
bool new_match(const P& p, const T2& values)
{
  fusion::for_each(fusion::filter_if<boost::is_same<_, T2> >(p), check(values));
  return true; // not finished, just trying to compile
}

Thanks!

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

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

发布评论

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

评论(1

零度℉ 2024-11-24 01:34:21

是的,这确实意味着 boost::mpl::_,如 fusion::filter_if 文档,所以你应该只需要 #包括 以及将 _ 引入范围的限定或 using 声明。

Yes, that indeed is meant to be boost::mpl::_, as demonstrated in the fusion::filter_if documentation, so you should only need #include <boost/mpl/placeholders.hpp> and a qualification or using declaration to bring _ into scope.

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