#include <algorithm>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <set>
#include <string_view>
template<typename T>
std::ostream& operator<<(std::ostream& out, const std::set<T>& set)
{
if (set.empty())
return out << "{}";
out << "{ " << *set.begin();
std::for_each(std::next(set.begin()), set.end(), [&out](const T& element)
{
out << ", " << element;
});
return out << " }";
}
void test(std::set<int> s)
{
std::cout << s << " in test " << '\n';
}
int main()
{
std::set<int> set;
test(std::move(set));
set.insert(2);
std::cout << set << '\n';
set.erase(1);
std::cout << set << "\n\n";
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8c3RyaW5nX3ZpZXc+CiAKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBzdGQ6OnNldDxUPiYgc2V0KQp7CiAgICBpZiAoc2V0LmVtcHR5KCkpCiAgICAgICAgcmV0dXJuIG91dCA8PCAie30iOwogICAgb3V0IDw8ICJ7ICIgPDwgKnNldC5iZWdpbigpOwogICAgc3RkOjpmb3JfZWFjaChzdGQ6Om5leHQoc2V0LmJlZ2luKCkpLCBzZXQuZW5kKCksIFsmb3V0XShjb25zdCBUJiBlbGVtZW50KQogICAgewogICAgICAgIG91dCA8PCAiLCAiIDw8IGVsZW1lbnQ7CiAgICB9KTsKICAgIHJldHVybiBvdXQgPDwgIiB9IjsKfQogdm9pZCB0ZXN0KHN0ZDo6c2V0PGludD4gcykKIHsKICAgICBzdGQ6OmNvdXQgPDwgcyA8PCAiIGluIHRlc3QgIiA8PCAnXG4nOwogfQppbnQgbWFpbigpCnsKICAgIHN0ZDo6c2V0PGludD4gc2V0OwogICAgdGVzdChzdGQ6Om1vdmUoc2V0KSk7CiAKICAgIHNldC5pbnNlcnQoMik7CiAgICBzdGQ6OmNvdXQgPDwgc2V0IDw8ICdcbic7CiAKICAgIHNldC5lcmFzZSgxKTsKICAgIHN0ZDo6Y291dCA8PCBzZXQgPDwgIlxuXG4iOwogCn0=