LINUX.ORG.RU

История изменений

Исправление dissident, (текущая версия) :

Вот так:

    A(A&& x) noexcept { cout << "move ctor" << endl; }

Выход такой:

Item: 
Capacity: 0
ctor
move ctor
Item: 
Capacity: 1
ctor
move ctor
move ctor
Item: 
Capacity: 2
ctor
move ctor
move ctor
move ctor
Item: 
Capacity: 4
ctor
move ctor

А так:

    A(A&& x) { cout << "move ctor" << endl; }

Вот такой:

Item: 
Capacity: 0
ctor
move ctor
Item: 
Capacity: 1
ctor
move ctor
copy ctor
Item: 
Capacity: 2
ctor
move ctor
copy ctor
copy ctor
Item: 
Capacity: 4
ctor
move ctor

Т.е. вроде как все правильно.

Исходная версия dissident, :

Вот так:

    A(A&& x) noexcept { cout << "move ctor" << endl; }

Выход такой:

Item: 
Capacity: 0
ctor
move ctor
Item: 
Capacity: 1
ctor
move ctor
move ctor
Item: 
Capacity: 2
ctor
move ctor
move ctor
move ctor
Item: 
Capacity: 4
ctor
move ctor

А так:

    A(A&& x) { cout << "move ctor" << endl; }

Вот такой:

[code[ Item: Capacity: 0 ctor move ctor Item: Capacity: 1 ctor move ctor copy ctor Item: Capacity: 2 ctor move ctor copy ctor copy ctor Item: Capacity: 4 ctor move ctor

Т.е. вроде как все правильно.