diff options
Diffstat (limited to 'starts/meaning-vm/level-0/ref.hpp')
-rw-r--r-- | starts/meaning-vm/level-0/ref.hpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/starts/meaning-vm/level-0/ref.hpp b/starts/meaning-vm/level-0/ref.hpp index abe3897..87a37c6 100644 --- a/starts/meaning-vm/level-0/ref.hpp +++ b/starts/meaning-vm/level-0/ref.hpp @@ -1,29 +1,22 @@ #pragma once #include "common.hpp" -#include "ref-mixin.hpp" +#include "baseref.hpp" #include <string> namespace intellect { namespace level0 { -struct ref : public refmixin<ref, vref> +struct ref : public baseref<ref, vref, concept> { - ref(concept *p); - ref(ref const & other) : ref(other.ptr) { } - ref & operator=(ref const & other) { self.ptr = other.ptr; return self; } - operator concept*() const { return ptr; } - concept* operator->() const { return ptr; } - concept & deref() { return *ptr; } + ref(concept *p) : baseref(p) { } + ref & operator=(ref const & other) { self.p = other.p; return self; } ref & l0() { return self; } ref const & l0() const { return self; } std::string dump(ref skipmarkertype, ref skipmarkertarget); - -private: - concept * ptr; }; } |