#include <algorithm>
#include <iostream>
#include <string>
class Collector {
public:
void push(const std::string& s) {
data_.push_back(s);
}
~Collector() {
for (const auto& s: data_) {
std::cout << "(" << s << ")" << std::endl;
}
std::reverse(data_.begin(), data_.end());
for (const auto& s: data_) {
std::cout << "[" << s << "]" << std::endl;
}
}
private:
std::vector<std::string> data_;
};
void func(const std::string& s) {
static Collector collector;
collector.push(s);
}
int main() {
func("1");
func("2");
func("qwer");
}
ICAgICNpbmNsdWRlIDxhbGdvcml0aG0+CiAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CiAgICAjaW5jbHVkZSA8c3RyaW5nPgogICAgCiAgICBjbGFzcyBDb2xsZWN0b3IgewogICAgcHVibGljOgogICAgICB2b2lkIHB1c2goY29uc3Qgc3RkOjpzdHJpbmcmIHMpIHsKICAgICAgICBkYXRhXy5wdXNoX2JhY2socyk7CiAgICAgIH0KICAgIAogICAgICB+Q29sbGVjdG9yKCkgewogICAgICAgIGZvciAoY29uc3QgYXV0byYgczogZGF0YV8pIHsKICAgICAgICAgIHN0ZDo6Y291dCA8PCAiKCIgPDwgcyA8PCAiKSIgPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgICAgICBzdGQ6OnJldmVyc2UoZGF0YV8uYmVnaW4oKSwgZGF0YV8uZW5kKCkpOwogICAgICAgIGZvciAoY29uc3QgYXV0byYgczogZGF0YV8pIHsKICAgICAgICAgIHN0ZDo6Y291dCA8PCAiWyIgPDwgcyA8PCAiXSIgPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgICAgfQogICAgcHJpdmF0ZToKICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGRhdGFfOwogICAgfTsKICAgIAogICAgdm9pZCBmdW5jKGNvbnN0IHN0ZDo6c3RyaW5nJiBzKSB7CiAgICAgIHN0YXRpYyBDb2xsZWN0b3IgY29sbGVjdG9yOwogICAgICBjb2xsZWN0b3IucHVzaChzKTsKICAgIH0KICAgIAogICAgaW50IG1haW4oKSB7CiAgICAgIGZ1bmMoIjEiKTsKICAgICAgZnVuYygiMiIpOwogICAgICBmdW5jKCJxd2VyIik7CiAgICB9Cg==