Boost Hana 似乎没有记录图书馆的这一方面,所以我想知道我在做什么至少是合法的。
我已经开始在我的代码中添加一堆概念,我不得不使用一些 hana 概念。有一个例子:
#include <boost/hana.hpp>
namespace hana = boost::hana;
template < typename T >
concept bool C_Type = requires(T object) {
typename decltype(object)::type;
};
template < typename T >
concept bool C_Functor = hana::Functor<T>::value;
constexpr decltype(auto) applySignatureOn(auto storageSig,
C_Functor innerTypes) {
return hana::transform(
innerTypes,
[=] (C_Type type)
{ return hana::make_pair(
hana::make_tuple(type),
storageSig(type));
});
}
像这样为 Boost Hana Functor 概念制作“别名”可以吗?或者它可以随时改变?
顺便说一句,错误并不十分精确。可能是因为 Hana 使用的是 C++14 并且不能使用概念。但是有没有计划有一天升级到 C++20?