Lumiera
0.pre.03
»edit your freedom«
|
#include "lib/diff/record.hpp"
wrapped record reference.
A helper for lib::GenNode and the diff representation. RecordRef is copyable and movable, but like a reference can not be rebound. It can be used to refer to a subtree within the diff representation, without the need to copy.
Definition at line 620 of file record.hpp.
Public Member Functions | |
RecordRef () noexcept | |
by default create an invalid ("bottom") reference | |
RecordRef (Target &o) noexcept | |
create a reference bound to the given target; can not be rebound | |
RecordRef (Target &&)=delete | |
prevent moving into black hole | |
RecordRef (RecordRef const &)=default | |
RecordRef (RecordRef &&)=default | |
bool | empty () const |
Target * | get () const noexcept |
operator bool () const | |
operator string () const | |
operator Target & () const | |
target is accessed by cast More... | |
RecordRef & | operator= (RecordRef const &)=delete |
references can not be reassigned | |
RecordRef & | operator= (RecordRef &)=delete |
RecordRef & | operator= (RecordRef &&o) |
assignment is not allowed, but moving is | |
Friends | |
bool | operator!= (RecordRef const &r1, RecordRef const &r2) |
bool | operator== (RecordRef const &r1, RecordRef const &r2) |
Private Types | |
using | Target = Record< VAL > |
Private Attributes | |
Target * | record_ |
|
inline |
target is accessed by cast
error::Logic | on bottom reference |
Definition at line 673 of file record.hpp.
Definition at line 695 of file record.hpp.