diff options
Diffstat (limited to 'src/expr/node_value.h')
-rw-r--r-- | src/expr/node_value.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/expr/node_value.h b/src/expr/node_value.h index bd74fd4d4..a5f68babf 100644 --- a/src/expr/node_value.h +++ b/src/expr/node_value.h @@ -32,7 +32,8 @@ namespace CVC4 { template <bool ref_count> class NodeTemplate; -template <unsigned> class NodeBuilder; +template <class Builder> class NodeBuilderBase; +template <unsigned N> class NodeBuilder; class AndNodeBuilder; class OrNodeBuilder; class PlusNodeBuilder; @@ -79,7 +80,8 @@ class NodeValue { // todo add exprMgr ref in debug case template <bool> friend class CVC4::NodeTemplate; - template <unsigned> friend class CVC4::NodeBuilder; + template <class Builder> friend class CVC4::NodeBuilderBase; + template <unsigned N> friend class CVC4::NodeBuilder; friend class CVC4::AndNodeBuilder; friend class CVC4::OrNodeBuilder; friend class CVC4::PlusNodeBuilder; @@ -94,9 +96,6 @@ class NodeValue { /** Private default constructor for the null value. */ NodeValue(); - /** Private default constructor for the NodeBuilder. */ - NodeValue(int); - /** Destructor decrements the ref counts of its children */ ~NodeValue(); @@ -226,6 +225,15 @@ struct NodeValueInternalHashFcn { } };/* struct NodeValueHashFcn */ +/** + * For hash_maps, hash_sets, etc. + */ +struct NodeValueIDHashFcn { + inline size_t operator()(const NodeValue* nv) const { + return (size_t) nv->getId(); + } +};/* struct NodeValueHashFcn */ + }/* CVC4::expr namespace */ }/* CVC4 namespace */ @@ -241,13 +249,6 @@ inline NodeValue::NodeValue() : d_nchildren(0) { } -inline NodeValue::NodeValue(int) : - d_id(0), - d_rc(0), - d_kind(kindToDKind(kind::UNDEFINED_KIND)), - d_nchildren(0) { -} - inline NodeValue::~NodeValue() { for(nv_iterator i = nv_begin(); i != nv_end(); ++i) { (*i)->dec(); |