Почему нельзя завязываться на имя класса в кросс-платформенном коде? При получении имени класса через оператор typeid.
На имя класса в typeid нельзя завязываться ни в каком коде. Спецификация стандартной библиотеки не дает никаких гарантий на поведение метода std::type_info::name(): она не гарантирует наличия какого-либо осмысленного или практически полезного имени класса. Методы std::type_info::name() могут просто возвращать "Вася" для всех типов или вообще возвращать нестабильное значение от запуска к запуску одной и той же программы.
typeid(this).name" на gcc и на msvc дает разный вывод на msvc: "class Foo *" на gcc: "P4Foo"
Продвижение своими сайтами как стратегия роста и независимости