when resizing or relocating memory in std::vector, if item supports move constructor std::vector can optimize on relocation operation.