Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include<iostream>
- using namespace std;
- int ctor = 0;
- int dtor = 0;
- struct test_vector {
- char const* _name;
- test_vector()
- : _name{ "" }
- {
- std::cout << "Default constructor " << _name << std::endl;
- }
- explicit test_vector(const char* name)
- : _name{ name }
- {
- std::cout << "Explicit constructor " << _name << std::endl;
- }
- test_vector(test_vector& oth)
- : _name{ oth._name }
- {
- std::cout << "Copy constructor " << _name << std::endl;
- }
- test_vector(test_vector&& oth)
- : _name{ oth._name }
- {
- std::cout << "Move constructor " << _name << std::endl;
- oth._name = "null";
- }
- ~test_vector()
- {
- std::cout << "Destructor " << _name << std::endl;
- }
- auto operator=(const test_vector& oth) -> test_vector &
- {
- _name = oth._name;
- std::cout << "copy assignment " << _name << std::endl;
- return *this;
- }
- auto operator=(test_vector&& oth) -> test_vector &
- {
- _name = oth._name;
- oth._name = "null";
- std::cout << "move assignment " << _name << std::endl;
- return *this;
- }
- };
- auto main() -> int
- {
- auto v = std::vector<test_vector>{};
- v.emplace_back("new1");
- v.emplace_back("new2");
- v.emplace_back("new3");
- v.emplace_back("new4");
- v.emplace_back("new5");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement