【发布时间】:2017-09-19 13:24:16
【问题描述】:
有没有办法使用类似的东西:
constexpr auto foo = hana::make_tuple(hana::type_c<Foo1>,hana::type_c<Foo2>);
类似:
template < typename ... Ts >
struct Final {
constexpr Final(Ts && ... args) {}
};
hana::unpack(foo, [] (auto && ... args) { return Final(args...); });
因为使用该代码,unpack 无法推断出 lambda/函数类型。
基本上我想创建一个接受参数列表的类型,但我有一个包含参数的元组。
【问题讨论】:
-
该代码不是有效的 C++14 或 C++17。您在使用概念画板吗?
-
@KerrekSB 我这里不需要概念,你能告诉我为什么它是无效的吗?
-
auto不是 C++ 中的有效函数参数类型。它只允许在 lambda 表达式中使用。 -
auto是一个函数参数类型,属于概念 TS (-fconcepts)。 -
@serup 实际上,如果您的编译器开始实现 Concepts TS,则 auto 将起作用。您不需要使用 gcc 指定任何标准,甚至不需要 -fconcept。
标签: c++ c++14 metaprogramming boost-hana