Информация об изменениях

Сообщение Re: проблема с move семантикой от 28.08.2018 6:39

Изменено 28.08.2018 6:58 wander

Re: проблема с move семантикой
Здравствуйте, Vinick, Вы писали:

V> auto op = Op<decltype(d)>(std::move(d));

V>....
V>....
V>....
V> auto gop = Op<decltype(g)>(std::move(g));
V>....

Здесь в шаблон уходит ссылка. Т.е. эти gop и op хранят ссылки, а не объекты. Естественно привязанные к ним объекты дохнут и ты получаешь проблему.
ИМХО, перестарался с автовыводом типов.

Добавление в Op std::remove_reference_t<D> решает проблему.
Re: проблема с move семантикой
Здравствуйте, Vinick, Вы писали:

V> auto op = Op<decltype(d)>(std::move(d));

V>....
V>....
V>....
V> auto gop = Op<decltype(g)>(std::move(g));
V>....

Здесь в шаблон уходит ссылка. Т.е. эти gop и op хранят ссылки, а не объекты. Естественно привязанные к ним объекты дохнут и ты получаешь проблему.
ИМХО, перестарался с автовыводом типов.

Добавление в Op и Cons std::remove_reference_t<D> решает проблему.