10 #include <hilti/base/intrusive-ptr.h> 11 #include <hilti/base/util.h> 23 Control(
const Node* n) : _node(n), _rid(++_rid_counter) {}
27 static uint64_t _rid_counter;
34 using std::runtime_error::runtime_error;
61 uint64_t
rid()
const {
return _control ? _control->_rid : 0; }
69 std::string
renderedRid()
const {
return _control && _control->_node ? util::fmt(
"%%%" PRIu64, rid()) :
"%???"; };
86 operator const Node&()
const {
return *_node(); }
89 explicit operator bool()
const {
return _control && _control->_node; }
92 const Node* _node()
const;
std::string renderedRid() const
Definition: node-ref.h:69
Definition: node-ref.h:21
Definition: node-ref.h:33
const Node * operator->() const
Definition: node-ref.h:76
Definition: intrusive-ptr.h:28
const Node & operator*() const
Definition: node-ref.h:84
Definition: intrusive-ptr.h:69
Definition: node-ref.h:45
uint64_t rid() const
Definition: node-ref.h:61