You should use std::type_index
for mapping purposes.
The type_index class is a wrapper class around a std::type_info
object, that can be used as index in associative and unordered
associative containers. The relationship with type_info object is
maintained through a pointer, therefore type_index is
CopyConstructible and CopyAssignable.