8 template<
class LT,
class IT>
9 class basic_node :
public std::enable_shared_from_this<const basic_node<LT, IT>> {
19 using node_ptr = std::shared_ptr<const self_type>;
29 return this->shared_from_this();
42 _then_node(nullptr), _else_node(nullptr)
51 _index(i), _label(l), _then_node(_then), _else_node(_else)
101 void operator()(
void const *)
const {}
boloq の名前空間
Definition: boolean_function.h:3
void accept(V &visitor) const
visitorを受理します
Definition: node.h:86
const node_ptr then_node() const
Definition: node.h:72
std::shared_ptr< const self_type > node_ptr
Definition: node.h:19
Definition: boolean_function.h:215
constexpr bool is_terminal() const
このノードが終端かどうかを表します
Definition: node.h:69
constexpr basic_node(const index_type &i, const label_type &l, const node_ptr &_then, const node_ptr &_else)
コンストラクタ
Definition: node.h:50
constexpr basic_node(const index_type &i)
定節点を生成するコンストラクタ
Definition: node.h:40
IT index_type
インデックスを表す型
Definition: node.h:15
const node_ptr else_node() const
Definition: node.h:77
constexpr const index_type & index() const
ノードの内容一意に定まる値を返します
Definition: node.h:57
基本的なノードのクラス
Definition: node.h:9
constexpr const label_type & label() const
ノードのラベルを返します
Definition: node.h:64
LT label_type
ラベルを表す型
Definition: node.h:17