gpt4 book ai didi

c++ - 如何访问 integer_sequence 的第 n 个值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:35 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





template parameter packs access Nth type and Nth element

(5 个回答)


2年前关闭。




我想知道如何访问 std::integer_sequence 的第 n 个值.例如给定一个类型

using foo = std::integer_sequence<int, 3, 1, 4>;

我想要类似的东西
auto i = get<foo, 2>(); // i = 4

标准库中有什么东西可以做到这一点吗?如果不是,如果我希望它在 C++14(而不是 C++17)中工作,我是否需要求助于迭代解决方案?

最佳答案

据我所知,没有这样的内置方法,但您可以自己用几行简洁的代码实现它,而无需任何迭代:

template<class T, T... Ints>
constexpr T get(std::integer_sequence<T, Ints...>, std::size_t i) {
constexpr T arr[] = {Ints...};
return arr[i];
}

在这里查看它是如何工作的: https://godbolt.org/z/yAfMeg

可以使用更多代码将参数提升为模板参数(以匹配您的示例)。

关于c++ - 如何访问 integer_sequence 的第 n 个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53223910/

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