#include <iostream>
#include <vector>
struct A
{
A() { std::cout << "A created \n"; }
A(int b) { std::cout << "A created via int \n"; }
A(const A &a) { std::cout << "A copy constructed \n"; }
A(A &&a) { std::cout << "A move constructed\n"; }
A& operator=(const A& a) {std::cout << "A copied \n";}
A& operator=(const A&& a) {std::cout << "A moved \n";}
};
std::vector<A> make_vec() {
std::vector<A> t;
t.emplace_back(3);
t.emplace_back(4);
return t;
}
const std::vector<A> a = make_vec();
int main() {};
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IEEKewoJQSgpIHsgc3RkOjpjb3V0IDw8ICJBIGNyZWF0ZWQgXG4iOyB9CglBKGludCBiKSB7IHN0ZDo6Y291dCA8PCAiQSBjcmVhdGVkIHZpYSBpbnQgXG4iOyB9CglBKGNvbnN0IEEgJmEpIHsgc3RkOjpjb3V0IDw8ICJBIGNvcHkgY29uc3RydWN0ZWQgXG4iOyB9CglBKEEgJiZhKSB7IHN0ZDo6Y291dCA8PCAiQSBtb3ZlIGNvbnN0cnVjdGVkXG4iOyB9CglBJiBvcGVyYXRvcj0oY29uc3QgQSYgYSkge3N0ZDo6Y291dCA8PCAiQSBjb3BpZWQgXG4iO30KCUEmIG9wZXJhdG9yPShjb25zdCBBJiYgYSkge3N0ZDo6Y291dCA8PCAiQSBtb3ZlZCBcbiI7fQp9OwoKc3RkOjp2ZWN0b3I8QT4gbWFrZV92ZWMoKSB7CiAgIHN0ZDo6dmVjdG9yPEE+IHQ7CiAgIHQuZW1wbGFjZV9iYWNrKDMpOwogICB0LmVtcGxhY2VfYmFjayg0KTsKICAgcmV0dXJuIHQ7Cn0KCmNvbnN0IHN0ZDo6dmVjdG9yPEE+IGEgPSBtYWtlX3ZlYygpOwoKaW50IG1haW4oKSB7fTs=