summaryrefslogtreecommitdiff
path: root/src/expr/node_value.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/expr/node_value.h')
-rw-r--r--src/expr/node_value.h25
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();
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback