#include #include #include #include #include #include #include std::string build_name() { alignas(std::max_align_t) std::array buffer{}; std::pmr::monotonic_buffer_resource arena(buffer.data(), buffer.size()); std::string result; { std::pmr::vector names{&arena}; names.reserve(2); names.emplace_back("alpha"); names.emplace_back("beta"); assert(names[0] == "alpha" && names[1] == "beta"); assert(names[0].get_allocator().resource() == &arena); result.assign(names[0].data(), names[0].size()); result += ':'; result.append(names[1].data(), names[1].size()); } arena.release(); return result; } int main() { std::string name = build_name(); assert(name == "alpha:beta"); std::cout << name << '\n'; }