boost::hana
的新功能,嘗試一個簡單的實驗來找到一組類型中的一個類型,然後打印它的typeid.name
。不過我正在static_assert錯誤(注:Xcode中7.2.1)Boost hana find set 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; });
的錯誤是:
「花::調整(XS,價值, f)要求'xs'是一個Functor「);
但是,這似乎與調整的文檔不一致,其中指出xs
需要是一個結構。
任何意見讚賞,因爲我認爲我失去了一些基本的理解。
非常感謝;在這個層面上,我肯定有很多東西要學習功能和元編程。 另一方面,哈哈提供了一種方式來獲取類型集合並根據其中一個匹配執行函數,而無需線性搜索列表。即執行查找表如呼叫? – AKB
@AKB你可能想要'hana :: contains'(它返回'hana :: true_'或'hana :: false_')或'hana :: find'(它返回'hana ::只是<...>'或'hana :: nothing')。這兩種方法都可以在'hana :: set'上高效地工作。 – ecatmur