#include <iostream>
#include <vector>
#include <initializer_list>
#include <algorithm>
#include <iterator>
template <typename T>
class X {
public:
std::vector<T> elements;
X(const std::initializer_list<T> &init) :
elements(init) {
std::cout << "konstruktor\nelementy:\n";
std::cout << *this << '\n';
}
X &operator=(const X &other) {
if (this == &other) {
return *this;
}
elements = other.elements;
std::cout << "operator przypisania\nelementy:\n";
std::cout << *this << '\n';
return *this;
}
};
template <typename T>
std::ostream &operator<<(std::ostream &s, const X<T> &x) {
std::copy(x.elements.begin(),
x.elements.end(),
std::ostream_iterator<T>(s, " "));
return s;
}
int main() {
X<int> test = {1, 2, 3};
test = {3, 4, 5};
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmNsYXNzIFggewpwdWJsaWM6CgogIHN0ZDo6dmVjdG9yPFQ+IGVsZW1lbnRzOwoKICBYKGNvbnN0IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUPiAmaW5pdCkgOgogICAgZWxlbWVudHMoaW5pdCkgewoKICAgIHN0ZDo6Y291dCA8PCAia29uc3RydWt0b3JcbmVsZW1lbnR5OlxuIjsKICAgIHN0ZDo6Y291dCA8PCAqdGhpcyA8PCAnXG4nOwogIH0KCiAgWCAmb3BlcmF0b3I9KGNvbnN0IFggJm90aGVyKSB7ICAgIAogICAgaWYgKHRoaXMgPT0gJm90aGVyKSB7CiAgICAgIHJldHVybiAqdGhpczsKICAgIH0KCiAgICBlbGVtZW50cyA9IG90aGVyLmVsZW1lbnRzOwoKICAgIHN0ZDo6Y291dCA8PCAib3BlcmF0b3IgcHJ6eXBpc2FuaWFcbmVsZW1lbnR5OlxuIjsKICAgIHN0ZDo6Y291dCA8PCAqdGhpcyA8PCAnXG4nOwoKICAgIHJldHVybiAqdGhpczsKICB9Cn07CiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6b3N0cmVhbSAmb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0gJnMsIGNvbnN0IFg8VD4gJngpIHsKICAgIHN0ZDo6Y29weSh4LmVsZW1lbnRzLmJlZ2luKCksCiAgICAgICAgICAgICAgeC5lbGVtZW50cy5lbmQoKSwKICAgICAgICAgICAgICBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8VD4ocywgIiAiKSk7CiAgICByZXR1cm4gczsKfQoKaW50IG1haW4oKSB7CiAgWDxpbnQ+IHRlc3QgPSB7MSwgMiwgM307CgogIHRlc3QgPSB7MywgNCwgNX07CgogIHJldHVybiAwOwp9