I have the following code:
#include <vector>
#include <iostream>
struct Data
{
Data() = default;
Data(const Data& other)
{
std::cout << "copy ctr" << std::endl;
}
Data(Data&& other)
{
std::cout << "move ctr" << std::endl;
}
};
int main(int argc, char** argv)
{
std::vector<Data> vector;
for (size_t i = 0u; i < 100u; ++i) {
vector.push_back(Data{});
}
return EXIT_SUCCESS;
}
With the following output:
move ctr move ctr copy ctr move ctr copy ctr copy ctr move ctr move ctr copy ctr copy ctr copy ctr copy ctr move ctr move ctr move ctr move ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr copy ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr move ctr
Why I have so much move operations???
My copy and move constructor aren't noexcept...