#include <iostream>
#include <vector>
struct Object {
~Object() { std::cout << "destructor\n"; }
Object() { std::cout << "constructor\n"; }
Object(const Object &) { std::cout << "copy constructor\n"; }
Object(Object &&) { std::cout << "move constructor\n"; }
};
int main() {
std::vector<Object> v;
//v.reserve(10);
v.emplace_back( Object() );
std::cout << "emplace_back()\n";
v.emplace_back();
std::cout << "end\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IE9iamVjdCB7Cgl+T2JqZWN0KCkgeyBzdGQ6OmNvdXQgPDwgImRlc3RydWN0b3JcbiI7IH0KICAgIE9iamVjdCgpIHsgc3RkOjpjb3V0IDw8ICJjb25zdHJ1Y3RvclxuIjsgfQogICAgT2JqZWN0KGNvbnN0IE9iamVjdCAmKSB7IHN0ZDo6Y291dCA8PCAiY29weSBjb25zdHJ1Y3RvclxuIjsgfQogICAgT2JqZWN0KE9iamVjdCAmJikgeyBzdGQ6OmNvdXQgPDwgIm1vdmUgY29uc3RydWN0b3JcbiI7IH0KfTsKCmludCBtYWluKCkgewogICAgc3RkOjp2ZWN0b3I8T2JqZWN0PiB2OwogICAgLy92LnJlc2VydmUoMTApOwogICAgdi5lbXBsYWNlX2JhY2soIE9iamVjdCgpICk7CiAgICBzdGQ6OmNvdXQgPDwgImVtcGxhY2VfYmFjaygpXG4iOwogICAgdi5lbXBsYWNlX2JhY2soKTsKICAgIHN0ZDo6Y291dCA8PCAiZW5kXG4iOwogICAgcmV0dXJuIDA7Cn0K