summaryrefslogtreecommitdiff
path: root/starts/meaning-vm/level-0
diff options
context:
space:
mode:
authorolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-23 13:11:16 -0800
committerolpc user <olpc@xo-5d-f7-86.localdomain>2019-12-23 13:11:16 -0800
commitfe51b5bb71f7eadf6072a51c31c0ffee91c815c8 (patch)
treec42a69573c2b0105c50d2f2524af1d3b2e1e56f6 /starts/meaning-vm/level-0
parent8db6ac879adf30e9e1aa61a8b441dea2ff09f9fb (diff)
downloadstandingwithresilience-fe51b5bb71f7eadf6072a51c31c0ffee91c815c8.tar.gz
standingwithresilience-fe51b5bb71f7eadf6072a51c31c0ffee91c815c8.zip
some bugfixes
Diffstat (limited to 'starts/meaning-vm/level-0')
-rw-r--r--starts/meaning-vm/level-0/baseref.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/starts/meaning-vm/level-0/baseref.hpp b/starts/meaning-vm/level-0/baseref.hpp
index d20b22a..9244492 100644
--- a/starts/meaning-vm/level-0/baseref.hpp
+++ b/starts/meaning-vm/level-0/baseref.hpp
@@ -68,6 +68,17 @@ public:
concept*& ptr() { return p; }
concept* const & ptr() const { return p; }
+ operator level0::ref const &() const { return *reinterpret_cast<level0::ref*>(this); }
+ operator level1::ref const &() const { return *reinterpret_cast<level1::ref*>(this); }
+ operator level2::ref const &() const { return *reinterpret_cast<level2::ref*>(this); }
+ operator level3::ref const &() const { return *reinterpret_cast<level3::ref*>(this); }
+ operator level4::ref const &() const { return *reinterpret_cast<level4::ref*>(this); }
+ operator level5::ref const &() const { return *reinterpret_cast<level5::ref*>(this); }
+ operator level6::ref const &() const { return *reinterpret_cast<level6::ref*>(this); }
+ operator level7::ref const &() const { return *reinterpret_cast<level7::ref*>(this); }
+ operator level8::ref const &() const { return *reinterpret_cast<level8::ref*>(this); }
+ operator level9::ref const &() const { return *reinterpret_cast<level9::ref*>(this); }
+
operator level0::ref &() { return *reinterpret_cast<level0::ref*>(this); }
operator level1::ref &() { return *reinterpret_cast<level1::ref*>(this); }
operator level2::ref &() { return *reinterpret_cast<level2::ref*>(this); }