Re[81]: Когда это наконец станет defined behavior?
От: · Великобритания  
Дата: 18.08.23 08:34
Оценка:
Здравствуйте, vdimas, Вы писали:


V>В шарпе для такого сценария есть отдельно иммутабельный аналог map, и отдельно мутабельный builder для него.

V>В С++ не потребовалось создавать две сущности.
Именно, то же самое на шарпах делается с помощью интерфейса. А две сущности в C++ тоже есть, просто неявно. Вместо явного интерфейса делается пара const- и просто-методов. Константные объекты появляются не магически, а в определениях соответствующих полей и методов.

V>Этот сценарий может возникнуть не только вокруг иммутабельного map, где в шарпе постелили соломку, а вообще везде.

И там и там надо вводить два типа. Ведь T и const T это тоже разные типы.

V>Собсно, только об этом и говорится в обсуждении (многократно по кругу) — что практически любой мутабельный тип можно использовать в т.ч. в иммутабельных сценариях.

"Практически" в том смысле если для типа правильно спроектирован const подтип. Ровно та же петрушка, что и с интерфейсом.

V>Остальные сценарии, когда мутабельный объект подаётся по константной ссылке — это просто удобные гарантии, т.к. после вызова метода с таким аргументом ты можешь в коде рассуждать о том, что целевой объект в результате вызова некоей ф-ии с им-аргументом, не изменился.

Аналог final.

Суть моего тезиса в том, что семантика const в других ЯП выражается тоже, просто через другие механизмы языка.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.