我想构造一个类型,它是具有不同模板参数类型的同一类的元组。我是说:
想象一下我们有一堂课
template<class Arg>
class A
{
//.... details
}
我想定义类似的东西:
template<class... Args>
struct construct_tuple
{
//assume I can access Args[...]
using type = std::tuple<A<Args[0]>, A<Args[1]>, ..., A<Args[n]>>;
}
能否请你帮忙?
我相信可能有一个解决方案,通过迭代可变参数并使用元组类型之间的串联或者使用其他一些 TMP 例如std::enable_if
或std::conditional_t
。
您只需要使用包扩展,使用:
将扩展到:
虽然您的代码不会尝试构建任何内容,但这将编译并提供您想要的内容。