C++ boost融合问题

C++ boost融合问题,c++,boost,boost-fusion,C++,Boost,Boost Fusion,我在编译以下内容时遇到问题(我是fusion的新手)。特别是,我不确定“u”(In is_same)从何而来?来自boost::lambda?Boost::mpl?我需要什么来编译这个 template <typename T> struct check { const T& value; check(const T& v) : value(v) {} template <typename X> bool operator()(con

我在编译以下内容时遇到问题(我是fusion的新手)。特别是,我不确定“u”(In is_same)从何而来?来自boost::lambda?Boost::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
}
模板
结构检查
{ 
常数T&value;
检查(常数T&v):值(v){
模板
布尔运算符()(常数融合::对和数据)常数
{
返回data.second==值;
}
};
模板
布尔新匹配(常数P&P、常数T2和值)
{
fusion::for_each(fusion::filter_if(p),check(values));
return true;//未完成,正在编译
}

谢谢

是的,这确实意味着
boost::mpl::。
,如中所示,因此您只需要
\include
和一个限定或使用声明,就可以将
纳入范围。

是的,这确实意味着
boost::mpl:。
,如中所示,因此,您只需要
#包括
和一个限定或使用声明就可以将
\uu
纳入范围。

我只阅读了文档的要点,只看到了介绍中的示例。。。我没有检查过滤器的引用,如果:-(谢谢你的指针!:-)@Frank:不用担心。:-]平心而论,Fusion文档肯定假定对MPL有深入的先验知识,并且经常在没有太多解释的情况下将两个库中的符号合并在一起。。。我没有检查过滤器的引用,如果:-(谢谢你的指针!:-)@Frank:不用担心。:-]平心而论,Fusion文档肯定假定对MPL有深入的先验知识,并且经常在没有太多解释的情况下将两个库中的符号合并在一起。