Здравствуйте, niralex, Вы писали:
N>А как быть с шаблонными типами при условии чтобы функция MyType3::Id() оставалась constexpr
Чтобы constexpr вряд ли получится, потому что окончательной информацией об эквиавалентности типов не владеет никто владеет не компилятор, а линкер. А данные, вычисленные линкером, если я не ошибаюсь, в мире C++ константами не считаются.
А так, можно завести в каждом типе статическую переменную, и считать идентификатором типа ее адрес.