【发布时间】:2016-05-25 01:11:38
【问题描述】:
我知道如何以旧方式获取函数参数的类型,但我想知道是否有一种很好的新方式来使用 Hana 呢?例如,我想要这样的东西:
struct foo {
int func(float);
};
auto getFuncType(auto t) -> declval<decltype(t)::type>()::func(TYPE?) {}
getFunType(type_c<foo>); // should equal type_c<float> or similar
如何在此处获取TYPE?
【问题讨论】:
-
不,我没有,我会调查的。它的扩展性如何?它似乎仍然使用 MPL 作为其后端,由于编译时间的原因,我试图避免这种情况。
-
如果您不想自己动手,AFAIK,建议的 Boost.CallableTraits 是现代解决方案。
-
我假设您知道您的问题通常无法解决,并且您要求一些有限的解决方案?
-
我想提一下,这超出了 Hana 的范围,因为 Hana 本身不提供任何特征。它的作用是提供一种使用函数语法使用现有特征(例如来自
<type_traits>)的方法,但它没有定义任何新特征。
标签: c++ boost c++14 boost-hana