Simple and useful snippet that helps to make an unique identifier for any type in C++.
template <typename T> std::uintptr_t getTypeId() { static int id; return reinterpret_cast<std::uintptr_t>(&id); }
It uses a fact that function static member of a function is a part of template installation, hence it contains own, unique address.