Здравствуйте, 1234, Вы писали:
1>То объекты этого класса, если я неошибаюсь, можно двигать в памяти как душе угодно(разумеется в валидных областях памяти). memmove, memcpy and e.t.c.
B>>Думаю, не нужно объяснять, что произойдет при вызове set для объекта, который был перемещен после создания с помощью memmove ...
1>Данный пример иллюстрирует проблему появления висячей ссылки(dead reference), это произойдёт так же в случае если на объект имеются ссылки где-то вне объекта. Эти вещи нужно учитывать, точно так же как если куда-то передаётся адрес какого-то объекта, то нужно гарантировать определённое время жизни этого объекта, что бы непроизошло обращение к уже удалённому объекту.
Это задачка уровня сборщика мусора и, для начала, неплохо было бы поработать с литературой

— например Джефф Элджер, "C++: библиотека программиста" (
http://rsdn.ru/res/book/cpp/cpp_real_programmers.xmlАвтор(ы): Джефф Элджер
Эта книга сборник творческих идей и головоломок продвигающая вас к высшему
знанию С++. Книга ориентированна на программистов, обладающим опытом
программирования на С++.
)