"constexpr Box getBox() const noexcept override" - this signature is just ridiculous. Can't compiler at least infer "const noexcept" from "constexpr"?
In the meanwhile, how is C++ lifetime profile doing, is it useable yet?
I know C++ pretty well, but I'd pick Rust (or Zig) for my next project.