История изменений
Исправление intelfx, (текущая версия) :
Пишем в базовом классе виртуальный метод (рекурсивный), специализируем его для наследника нужным образом - профит!
Говорю же — в упор не вижу, что можно вытащить в базовый класс. У add_child()'ов и children() сигнатуры разные, т. к. в зависимости от типа узла к каждому потомку прилагаются свои «метаданные». Методы, определённые в Node::Value, специфичны именно для чисел — неужели нужно вытащить их в Node::Base и заставить возвращать boost::optional? И так везде.
Говорят что юзание каста хороший повод задуматься, м.б. ты что то делаешь не так.
Ну так я и хочу узнать, что конкретно у меня не так (и что конкретно сделать, чтобы было «так»).
Исходная версия intelfx, :
Пишем в базовом классе виртуальный метод (рекурсивный), специализируем его для наследника нужным образом - профит!
Говорю же — в упор не вижу, что можно вытащить в базовый класс. У add_child()'ов и children() сигнатуры разные, т. к. в зависимости от типа узла к каждому потомку прилагаются свои «метаданные». Методы, определённые в Node::Value, специфичны именно для чисел — неужели нужно вытащить их в Node::Base и заставить возвращать boost::optional? И так везде.
Говорят что юзание каста хороший повод задуматься, м.б. ты что то делаешь не так.
Ну так я и хочу узнать, что конкретно у меня не так (и что конкретно сделать, чтобы было «так»)...