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