diff options
author | olpc user <olpc@xo-5d-f7-86.localdomain> | 2019-11-24 13:22:55 -0800 |
---|---|---|
committer | olpc user <olpc@xo-5d-f7-86.localdomain> | 2019-11-24 13:22:55 -0800 |
commit | 9a14918abec434d8463e07635daef380ad630649 (patch) | |
tree | fa1a5200da88ad6065092b05dc063a8a80df8faa /starts/meaning-vm/level-0/ref.hpp | |
parent | 50be8bb8697b23ff469de142eaebe9666c2a9537 (diff) | |
download | standingwithresilience-9a14918abec434d8463e07635daef380ad630649.tar.gz standingwithresilience-9a14918abec434d8463e07635daef380ad630649.zip |
breaking into levels
Diffstat (limited to 'starts/meaning-vm/level-0/ref.hpp')
-rw-r--r-- | starts/meaning-vm/level-0/ref.hpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/starts/meaning-vm/level-0/ref.hpp b/starts/meaning-vm/level-0/ref.hpp new file mode 100644 index 0000000..951676b --- /dev/null +++ b/starts/meaning-vm/level-0/ref.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include "common.hpp" + +#include <string> + +namespace intellect { +namespace level0 { + +struct ref +{ + ref(concept *p); + operator concept*() const { return ptr; } + concept* operator->() const { return ptr; } + bool operator==(ref const & other) const { return self.ptr == other.ptr; } + bool operator!=(ref const & other) const { return self.ptr != other.ptr; } + bool operator<(ref const & other) const { return self.ptr < other.ptr; } + concept & deref() { return *ptr; } + + std::string dump(ref skipmarkertype, ref skipmarkertarget) const; + + concept * const ptr; +}; + +} +} |