Есть ли способ получить текстовое представление специализации класса? Для целей контроля при повторых использованиях, что второй раз за тем же идентификатором запрашивается таже специализация класса. Или как можно как-либо по другому это проконтролировать?
Для примера, пусть будет простой базовый класс A с виртуальными методами, от него наследую шаблонный класс B. При использованнии делаю new B<SomeType> шаблонного класса и указатели таких классов сохраняю в std::map<string,A*> - где string это глобальный идетификатор.
Что-то вроде:
std::map<string,A*> global_map;
A* get_global_prop<SomeType>(const string& id) {
A*& cell = global_map[id];
if (cell != nullptr) {
// здесь контроль, что в прошлый раз была таже специализация
assert( ... );
return cell;
}
return cell = static_cast<A*>(new B<SomeType>);
}