#include <iostream>
#include <list>
class ObjectB
{
std::list<int> l;
public:
template<typename T, typename... Args>
ObjectB(T FirstInt, const Args... RemainingInts)
{
this->l = {FirstInt, RemainingInts...};
}
ObjectB& operator = (std::list<int> other)
{
for (auto &o : other)
this->l.push_back(o);
return *this;
}
auto begin() -> decltype(l.begin()) {return l.begin();}
auto end() -> decltype(l.end()) {return l.end();}
};
int main()
{
std::list<int> b = {1, 2, 3, 4, 5};
ObjectB obj_b = b;
for (auto it = obj_b.begin(); it != obj_b.end(); ++it)
std::cout<<*it<<" ";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KCmNsYXNzIE9iamVjdEIKewoJc3RkOjpsaXN0PGludD4gbDsKCQoJcHVibGljOgoJCXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CgkgICAgT2JqZWN0QihUIEZpcnN0SW50LCBjb25zdCBBcmdzLi4uIFJlbWFpbmluZ0ludHMpCgkgICAgewoJICAgIAl0aGlzLT5sID0ge0ZpcnN0SW50LCBSZW1haW5pbmdJbnRzLi4ufTsKCSAgICB9CgkgICAgCgkgICAgT2JqZWN0QiYgb3BlcmF0b3IgPSAoc3RkOjpsaXN0PGludD4gb3RoZXIpCgkgICAgewoJICAgIAlmb3IgKGF1dG8gJm8gOiBvdGhlcikKCQkJCXRoaXMtPmwucHVzaF9iYWNrKG8pOwoJCQkJCgkJCXJldHVybiAqdGhpczsKCSAgICB9CgkgICAgCgkgICAgYXV0byBiZWdpbigpIC0+IGRlY2x0eXBlKGwuYmVnaW4oKSkge3JldHVybiBsLmJlZ2luKCk7fQoJICAgIGF1dG8gZW5kKCkgLT4gZGVjbHR5cGUobC5lbmQoKSkge3JldHVybiBsLmVuZCgpO30KfTsKCgppbnQgbWFpbigpCnsKCXN0ZDo6bGlzdDxpbnQ+IGIgPSB7MSwgMiwgMywgNCwgNX07CgkKCU9iamVjdEIgb2JqX2IgPSBiOwoJCglmb3IgKGF1dG8gaXQgPSBvYmpfYi5iZWdpbigpOyBpdCAhPSBvYmpfYi5lbmQoKTsgKytpdCkKCQlzdGQ6OmNvdXQ8PCppdDw8IiAiOwoJCglyZXR1cm4gMDsKfQ==