【发布时间】:2016-09-12 09:24:49
【问题描述】:
我正在尝试过滤掉带有类型的列表,但这似乎不起作用。我确定我在这里做错了,这是我为重现它而创建的测试:
#include <iostream>
#include <boost/hana.hpp>
#include <boost/hana/ext/std/tuple.hpp>
struct X {
};
struct Y {
};
struct Z {
};
int main(int argc, char **argv) {
namespace hana = boost::hana;
constexpr std::tuple<X, Y, Z> list;
constexpr std::tuple<X> filterlist;
auto t = hana::filter(list, [&](auto t) {
return hana::not_(hana::contains(filterlist, hana::decltype_(t)));
});
std::cout << "filtered list contains " << hana::size(t) << " items, expected 2 items" << std::endl;
return 0;
}
基本上我想要的:
我有一个类型列表,我想返回一个包含不在过滤器列表中的项目的列表。所以在这种情况下,应该是std::tuple<Y, Z>。
这个程序的当前输出是: 过滤后的列表包含 3 项,预计为 2 项
问候,马蒂斯
【问题讨论】:
标签: c++ c++14 boost-hana