增强融合问题
我在编译以下内容时遇到问题(我是 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这确实意味着
boost::mpl::_
,如fusion::filter_if
文档,所以你应该只需要#包括
以及将_
引入范围的限定或 using 声明。Yes, that indeed is meant to be
boost::mpl::_
, as demonstrated in thefusion::filter_if
documentation, so you should only need#include <boost/mpl/placeholders.hpp>
and a qualification or using declaration to bring_
into scope.