Здравствуйте, wander, Вы писали:
W>Здесь в шаблон уходит ссылка. Т.е. эти gop и op хранят ссылки, а не объекты. Естественно привязанные к ним объекты дохнут и ты получаешь проблему.
W>ИМХО, перестарался с автовыводом типов.
W>Добавление в Op и Cons std::remove_reference_t<D> решает проблему.
вот так подфиксил:
https://ideone.com/KIioaB
кое-где добавил std::decay_t, кое-где при move сырого указателя сделал зануление в источнике (для исходной проблемы неактуально, однако так желательно делать)