28 [[nodiscard]] std::string name()
const {
return "branching-rule"; }
35 [[nodiscard]]
const Model& model()
const {
return m_parent.parent(); }
37 virtual void initialize() {}
41 [[nodiscard]]
virtual std::list<NodeInfoT*> create_child_nodes(
const Node<NodeInfoT>& t_node) = 0;
45 virtual void on_nodes_have_been_created() {}
47 template<
class T> T& as() {
48 auto* result =
dynamic_cast<T*
>(
this);
55 template<
class T>
const T& as()
const {
56 auto* result =
dynamic_cast<const T*
>(
this);
63 template<
class T> [[nodiscard]]
bool is()
const {
64 return dynamic_cast<const T*
>(
this);