Skip to content
Welcome to the new CppUtils documentation!
using CppUtils::Language::v2::MetaCircularVirtualMachine::MeshNodePtr = Container::MeshNodePtr<Type::Token, Type::Token>;
using CppUtils::Language::v2::MetaCircularVirtualMachine::FunctionPointer = auto (*)(MetaCircularVirtualMachine&, MeshNodePtr) -> std::expected<MeshNodePtr, std::string_view>;
MeshNodePtr context = MeshNodePtr::makeRoot(0uz);
Thread::SharedPtr<Environment> environment;
template <class T = MetaCircularVirtualMachine>
constexpr auto MetaCircularVirtualMachine::addFunction(Type::Token token, auto&& function) -> void;
constexpr explicit MetaCircularVirtualMachine::MetaCircularVirtualMachine(Thread::SharedPtr<Environment> environment);
constexpr MetaCircularVirtualMachine::MetaCircularVirtualMachine();
virtual MetaCircularVirtualMachine::~MetaCircularVirtualMachine() = default;
[[nodiscard]] virtual auto MetaCircularVirtualMachine::makeExecutionContext(Thread::SharedPtr<Environment> environment) const -> std::unique_ptr<MetaCircularVirtualMachine>;
[[nodiscard]] constexpr auto MetaCircularVirtualMachine::reportError(std::string_view message) const -> std::expected<void, std::string_view>;
[[nodiscard]] constexpr auto MetaCircularVirtualMachine::get(Type::Token token) -> std::expected<MeshNodePtr, std::string_view>;
[[nodiscard]] constexpr auto MetaCircularVirtualMachine::resolve(Type::Token token) -> std::expected<MeshNodePtr, std::string_view>;
[[nodiscard]] constexpr auto MetaCircularVirtualMachine::operator()(MeshNodePtr instruction) -> std::expected<void, std::string_view>;
[[nodiscard]] constexpr auto MetaCircularVirtualMachine::operator()(Type::Token token) -> std::expected<void, std::string_view>;