31 struct TagsStack::Impl {
32 std::vector<TagRecord> stack;
36 const Impl&) =
delete;
38 const Impl&) =
delete;
44 TagsStack::Impl::Impl() {
48 TagsStack::Impl::~Impl() {
62 const std::string& name_,
64 pimpl->stack.push_back({name_, tags_});
68 assert(!pimpl->stack.empty());
69 pimpl->stack.pop_back();
73 std::vector<TagRecord>& tags_)
const {
74 std::copy(pimpl->stack.begin(), pimpl->stack.end(), std::back_inserter(tags_));