Насколько я понимаю, целью size_type
и difference_type
является , а не просто знак --, для которого он также предназначался, например. сегментированные архитектуры и тому подобное, где они могут быть разных размеров.
В этом контексте, если у меня есть контейнер с итераторами произвольного -доступа, безопасно ли мне выполнять static_cast
между его значениями difference_type
и size_type
по желанию на том основании, чтоend() - begin()
должен ли всегда быть равен size()
, когда любой из них приведен?
(Сценарий использования, например, заключается в создании контейнера, размер которого равен количеству элементов между двумя итераторами, или наоборот :для копирования контейнера определенного размера в диапазон, ограниченный итераторами.)
Все, на что я должен обратить внимание перед броском (, например. потеря данных )?