Re: проблема с move семантикой
От: wander  
Дата: 28.08.18 06:39
Оценка: 35 (1) +3
Здравствуйте, 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> решает проблему.
Отредактировано 28.08.2018 6:58 wander . Предыдущая версия . Еще …
Отредактировано 28.08.2018 6:57 wander . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.