Есть нужда сделать фунцию, которая в зависимости от значения (не типа!) аргумента будет возвращать различные типы. То есть, чтобы вызвать функцию парсинга, не зная заранее, результат какого типа будет распарсен. Как эту задачу лучше решать? Через наследование?
Звучит как switch и коллбэки на каждый тип, иначе как-то неловко получается, дважды тип стирать и всё равно потом тем же switch или if обрабатывать.
Да, или unique_ptr<interface>, если только сохранить нужно.
Или visitor, если таки нужно сразу процессить, но не хочется switch и коллбэки.