I find the bug form class Template: ``` Template& operator=(Template&& oth) { bytecodes = std::move(oth.bytecodes); content = std::move(oth.content); return *this; } ``` the ``` struct Bytecode { ... std::string_view str; ... } ``` str references `Template::content`, when move the `Template::content`, `Template::content` will be changed, the `Bytecode::str` is invalid. You can reference [basic_string_view#Notes](https://en.cppreference.com/w/cpp/string/basic_string_view#Notes)