#pragma once namespace lsplant::art { template class ReflectiveReference { public: static_assert(std::is_same_v, "Unknown type!"); ReflectiveType *Ptr() { return val_; } void Assign(ReflectiveType *r) { val_ = r; } private: ReflectiveType *val_; }; } // namespace lsplant::art