Новое в boost::hana
и попробуйте простой эксперимент, чтобы найти тип в наборе типов и просто распечатайте его typeid.name
. Однако я получаю ошибки static_assert (Примечание: Xcode 7.2.1)Boost hana find type in set
Это код:
auto set = hana::make_set(hana::type_c<int>, hana::type_c<float>);
auto s = hana::adjust(set, hana::type_c<int>, [](auto x){ std::cout << typeid(x).name() << std::endl; });
Ошибка:
«Hana :: подстраиваться (Xs, значение, f) требует, чтобы xs был функтором);
Однако это, похоже, противоречит документации по настройке, которая гласит, что xs
должен быть структурой.
Любые советы, оцененные, поскольку я предполагаю, что у меня отсутствует что-то фундаментальное в моем понимании.
Большое спасибо; У меня, конечно, есть много, чтобы узнать о функциональном и мета-программировании на этом уровне. Как и в любом случае, ха-ха обеспечивает способ сбора коллекции типов и выполняет функцию, основанную на одном из них, не требуя линейного поиска по списку. т. е. выполнить таблицу поиска, такую как вызов? – AKB
@AKB вы, вероятно, хотите 'hana :: contains' (который возвращает' hana :: true_' или 'hana :: false_') или' hana :: find' (который возвращает 'hana :: just <...>' или 'hana :: nothing'). Обе эти функции эффективно работают на 'hana :: set'. – ecatmur