Здравствуйте, so5team, Вы писали:
S>>>Логика мне непонятна (как и многое из того, что вы здесь показываете).
M>>Я заметил
S>А могли бы и задуматься почему ваши гениальные замыслы не находят понимания.
Ну, они мало у кого не находят понимания
S>>>Тогда у вас не получится заменить значение по уже имеющемуся ключу. Для такой замены нужно будет использовать другой метод. Внутри которого вы сможете делать что вам захочется (хоть обновлять, хоть перемещать в конец). И никакие прокси вам не потребуются.
M>>Контейнер мой, но передаётся в чужой код, который кладёт значения в map через operator[]
S>Значит и вы, и ваши пользователи должны страдать, ибо нарушается принцип наименьшего удивления.
И в чем же нарушение?
S>Если хочется извращений, то попробуйте поэкспериментировать с методами вашего прокси, которые будут разрешены только для случая rvalue reference.
S>Что-то типа:
S>S>class proxy {
S>public:
S> void f() &&;
S> ...
S>};
S>
S>Тогда метод f() можно будет вызвать у объекта proxy только если это временный объект.
S>А вот если кто-то его сохранил на стеке и пытается вызвать f по обычной или конст-ссылке, то компилятор ударит по рукам: https://wandbox.org/permlink/s5hlLuSfHKbEIg0g
Да, это выглядит интересно. А как такая конструкция называется, и в каких разделах описана?