J'essaie de filtrer une liste avec des types, mais cela ne semble pas fonctionner. Je suis sûr que je fais quelque chose de mal ici, voici un test que je l'ai créé pour reproduire:Filtrer une liste avec des types utilisant boost :: hana
#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;
}
Au fond ce que je veux: J'ai une liste des types et je veux retourner une liste éléments qui ne sont pas dans la liste de filtres. Donc, dans ce cas, il devrait être std::tuple<Y, Z>
.
La sortie actuelle de ce programme est: liste filtrée contient 3 éléments, attendu 2 articles
Cordialement, Matthijs