【发布时间】:2021-11-19 01:55:48
【问题描述】:
我正在尝试构建(在运行时)一个其类型在编译时已知的元组。 我想我已经很接近了:
#include <tuple>
// This is defined elsewhere
template<typename T>
T* create_obj();
template<typename ...Ts>
auto create_tuple()
{
std::tuple_cat(
(std::make_tuple( create_obj<std::tuple_element<Idx, Ts...>() ), ...) // Idx?
);
}
示例用法可能是:
struct A{};
struct B{};
struct C{};
std::tuple<A*, B*, C*> = create_tuple<A, B, C>();
我被困在如何在编译时迭代 Idx... 也许是 std::index_sequence?
【问题讨论】:
标签: c++ templates metaprogramming