допустим есть у нас набор шаблонных классов, которые наследуют от своего параметра
из них я хочу сгенерировать класс, имеющий сложную иерархическую структуру
вроде все хорошо. но проблема вот в чем. у меня в дереве MyStruct имеется два различных класса A, которые все же имеют функцию foo с одинаковой сигнатурой. поэтому я не могу просто вызвать my_struct.foo() из-за возникающей неоднозначности.
меня интересует, есть ли какие-нибудь известные методы для того, что бы как-нибудь помечать конкретные классы в иерархии и потом получать к ним доступ? естесственно интересует только compile-time, в run-time все далется тривиально через dynamic_cast
а мне бы хотелось как-нибудь вот так tag_cast<first_A_class_tag>(my_struct).foo(); tag_cast<second_A_class_tag>(my_struct).foo();
что-то пока никакое решение в голову не приходит