From 860cdb7b387723eddea9bd110c85ebeaaa6c5b70 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Sat, 30 Nov 2024 10:21:59 -0500 Subject: compile time initialize --- main.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 99f5ecc..60653dc 100644 --- a/main.cpp +++ b/main.cpp @@ -23,7 +23,12 @@ #include static std::array dict; -static auto fth = new (dict.data()) sforth::forth; +static sforth::forth *fth = + [] constexpr { + fth = new (dict.data()) sforth::forth; + sforth::initialize<&fth>(dict.end()); + return fth; + }(); static bool parse_stream(sforth::forth *, std::istream&, bool say_okay = false); @@ -31,7 +36,6 @@ int main(int argc, const char *argv[]) { std::span args (argv + 1, argc - 1); - sforth::initialize<&fth>(dict.end()); fth->add(".", [](auto) { char buf[32] = {}; std::to_chars(buf, buf + sizeof(buf), fth->pop(), fth->base); -- cgit v1.2.3