Предположим, у меня есть шаблонная функция, у которой есть параметр, используемый в качестве итератора (хотя и без каких-либо концепций / требований - C ++ 17 или более ранних версий) с именем my_iter
.
Могу ли я в общем убедиться, что итератор такое константный итератор, или получить константный итератор в той же позиции?
Примечание: В отличие от этот вопрос , который касается iterator
против const_iterator
некоторых предположительно известных контейнерный класс, здесь мы не знаем, что это за контейнерный класс, если он вообще существует. Поэтому я не хочу писать что-то вроде:
auto it = std::cbegin(my_container);
auto desired_iter = it + distance(it, my_iter);
, как предложено в , этот метод , и даже:
auto desired_iter = ContainerType::const_iterator(my_iter);