use*_*020 11 c++ templates tuples
如果我有一个元组类型不同的元组
std::tuple<T0, T1, T2, ...>
Run Code Online (Sandbox Code Playgroud)
以及如何获取元素类型的索引?
template<class T, class Tuple>
struct Index
{
enum {value = ?;}
};
Run Code Online (Sandbox Code Playgroud)
谢谢.
Cas*_*sey 20
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;
};
Run Code Online (Sandbox Code Playgroud)
此实现返回给定类型第一次出现的索引.请求不在元组中的类型的索引会导致编译错误(并且在那个问题上相当丑陋).
| 归档时间: |
|
| 查看次数: |
5936 次 |
| 最近记录: |