summaryrefslogtreecommitdiff
path: root/starts/meaning-vm/level-0/ref.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'starts/meaning-vm/level-0/ref.hpp')
-rw-r--r--starts/meaning-vm/level-0/ref.hpp15
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;
};
}