<typeindex>

std::type_index

class type_index;
类型索引
一个包装了 type_info 对象的类,使其可以被复制(copy-constructedcopy-assigned),并且/或者能够通过标准的 hash 函数用作索引。

该类提供了对 type_infonamehash_code 成员的直接访问。

成员函数


非成员类特化


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// type_index example
#include <iostream>       // std::cout
#include <typeinfo>       // operator typeid
#include <typeindex>      // std::type_index
#include <unordered_map>  // std::unordered_map
#include <string>         // std::string

struct C {};

int main()
{
  std::unordered_map<std::type_index,std::string> mytypes;

  mytypes[typeid(int)]="Integer type";
  mytypes[typeid(double)]="Floating-point type";
  mytypes[typeid(C)]="Custom class named C";

  std::cout << "int: " << mytypes[typeid(int)] << '\n';
  std::cout << "double: " << mytypes[typeid(double)] << '\n';
  std::cout << "C: " << mytypes[typeid(C)] << '\n';

  return 0;
}

输出
int: Integer type
double: Floating-point type
C: Custom class named C