9 #include <hilti/base/intrusive-ptr.h> 10 #include <hilti/base/util.h> 22 Control(
const Node* n) : _node(n), _rid(++_rid_counter) {}
26 static uint64_t _rid_counter;
33 using std::runtime_error::runtime_error;
60 uint64_t
rid()
const {
return _control ? _control->_rid : 0; }
68 std::string
renderedRid()
const {
return _control && _control->_node ?
util::fmt(
"%%%" PRIu64, rid()) :
"%???"; };
85 operator const Node&()
const {
return *_node(); }
88 explicit operator bool()
const {
return _control && _control->_node; }
91 const Node* _node()
const;
std::string renderedRid() const
Definition: node-ref.h:68
Definition: node-ref.h:20
Definition: node-ref.h:32
const Node * operator->() const
Definition: node-ref.h:75
Definition: intrusive-ptr.h:28
const Node & operator*() const
Definition: node-ref.h:83
std::string fmt(const char *fmt, const Args &... args)
Definition: util.h:80
Definition: intrusive-ptr.h:69
Definition: node-ref.h:44
uint64_t rid() const
Definition: node-ref.h:60