获取元组元素类型的索引?

2024-04-21

如果我有一个具有不同元素类型的元组,例如

std::tuple<T0, T1, T2, ...>

以及如何获取元素类型的索引?

template<class T, class Tuple>
struct Index
{
    enum {value = ?;}
};

Thanks.


template <class T, class Tuple>
struct Index;

template <class T, class... Types>
struct Index<T, std::tuple<T, Types...>> {
    static const std::size_t value = 0;
};

template <class T, class U, class... Types>
struct Index<T, std::tuple<U, Types...>> {
    static const std::size_t value = 1 + Index<T, std::tuple<Types...>>::value;
};

在 Coliru 观看现场直播 http://coliru.stacked-crooked.com/view?id=b8b6d4252c089262d3b80b6e0918f76c-c944ac6b0eed3bfc48b1f78a894f6965.

此实现返回给定类型第一次出现的索引。请求不在元组中的类型的索引会导致编译错误(而且是一个相当难看的错误)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取元组元素类型的索引? 的相关文章

随机推荐