gpt4 book ai didi

c++ - Q : Generate argument list at compile time

转载 作者:行者123 更新时间:2023-11-28 05:20:41 25 4
gpt4 key购买 nike

我试图在编译时创建一些元组,只是一个类型和一个位集(代表某些操作的类型)。

我想要这样的东西:

<Foo1,0x001>, <Foo2,0x002>, <Foo3,0x003>...

这就是为什么我有一个元数据结构:

template < typename T,
size_t Size >
struct Metadata {

using type = T;

std::bitset<Size> bitset;
};

而且,感谢大家,make 函数是这样的:

template <typename...Ts,typename...Args>
constexpr auto make_metadata(Args... args)
{
constexpr auto N = sizeof...(Ts);
return std::make_tuple(Metadata<Ts, N>{args}...);
}

但我现在需要给它 bitset 值。正如我在开始时所说,我知道编译时的位集值。那么我怎样才能生成像 (0,1,2,...,N - 1) 这样的参数列表?

最佳答案

对于 C++14,您可以使用 std::integer_sequence and std::make_integer_sequence()生成单调递增整数的编译时参数包,这应该适用于您的用例。

关于c++ - Q : Generate argument list at compile time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com