#include <iostream>
#include <vector>
using namespace std;
struct MyClass {
MyClass() {}
MyClass(const MyClass&) {
cout << "copy ctor invoked" << endl;
}
};
int main(){
vector<MyClass> objects;
MyClass obj1;
objects.push_back(obj1); // Vector filling
cout << "------" << endl;
for (auto obj : objects) // Auto loop
{}
cout << "------" << endl;
for (auto& obj : objects)
{}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE15Q2xhc3MgewogICAgTXlDbGFzcygpIHt9CiAgICBNeUNsYXNzKGNvbnN0IE15Q2xhc3MmKSB7CiAgICAgICAgY291dCA8PCAiY29weSBjdG9yIGludm9rZWQiIDw8IGVuZGw7CiAgICB9Cn07CgppbnQgbWFpbigpewogICAgdmVjdG9yPE15Q2xhc3M+IG9iamVjdHM7CiAgICBNeUNsYXNzIG9iajE7CiAgICBvYmplY3RzLnB1c2hfYmFjayhvYmoxKTsgLy8gVmVjdG9yIGZpbGxpbmcKICAgIGNvdXQgPDwgIi0tLS0tLSIgPDwgZW5kbDsKICAgIGZvciAoYXV0byBvYmogOiBvYmplY3RzKSAvLyBBdXRvIGxvb3AKICAgIHt9CiAgICBjb3V0IDw8ICItLS0tLS0iIDw8IGVuZGw7CiAgICBmb3IgKGF1dG8mIG9iaiA6IG9iamVjdHMpCiAgICB7fQp9