LINUX.ORG.RU

История изменений

Исправление kvpfs, (текущая версия) :

Так это встречают все, кто руками реализует кэширование доступа. То есть, сценарий выбора между [дорогим, но mutable] и [дешевым, но r/o] доступом к объекту. И на этот сценарий отлично налазит begin/cbegin, которые, как нам и завещал стандарт, могут иметь разные кишки. Или не налазит?

А в чём проблема? Ну не учим свой неконстантый итератор кастоваться в константный, это просто не скомпилится. Если разговор о «универсальной» begin(), то range’ы дают возможность кастомизировать их поведение, там все эти ranges::[c]begin() и смежные штуки обзываются «customization point object», или можно специализацию для своего итератора в std:: написать.

PS: хотя не совсем уверен по поводу range’ов, не уверен, что правильно понимаю «customization point object», не факт, что можно свою версию там подставить.

Исходная версия kvpfs, :

Так это встречают все, кто руками реализует кэширование доступа. То есть, сценарий выбора между [дорогим, но mutable] и [дешевым, но r/o] доступом к объекту. И на этот сценарий отлично налазит begin/cbegin, которые, как нам и завещал стандарт, могут иметь разные кишки. Или не налазит?

А в чём проблема? Ну не учим свой неконстантый итератор кастоваться в константный, это просто не скомпилится. Если разговор о «универсальной» begin(), то range’ы дают возможность кастомизировать их поведение, там все эти ranges::[c]begin() и смежные штуки обзываются «customization point object», или можно специализацию для своего итератора в std:: написать.