Информация об изменениях

Сообщение Re[4]: ненависть к итераторам от 26.12.2020 12:10

Изменено 26.12.2020 12:11 Videoman

Re[4]: ненависть к итераторам
Здравствуйте, Voivoid, Вы писали:

V>Так и указатели тоже будут работать с точно таким же кодом: https://ideone.com/AvzGNO

V>
V>int main() 
V>{
V>  const char* p = nullptr;
V>  CalcSomething( p, p );
V>}
V>

V>Или о чем речь?

Да придирки... просто насколько я понял std::iterator_traits не отличает константные итераторы от не константных. Как с std::iterator_traits сделать что-бы метод принимал итераторы/указатели только не константные, иначе говоря, что бы код выше не компилировался?
Re[4]: ненависть к итераторам
Здравствуйте, Voivoid, Вы писали:

V>Так и указатели тоже будут работать с точно таким же кодом: https://ideone.com/AvzGNO

V>
V>int main() 
V>{
V>  const char* p = nullptr;
V>  CalcSomething( p, p );
V>}
V>

V>Или о чем речь?

Да придирки... просто насколько я понял std::iterator_traits не отличает константные итераторы от не константных. Как с std::iterator_traits сделать что-бы метод принимал итераторы/указатели только не константные, иначе говоря, что бы код выше не компилировался, а вот такой компилировался?
int main() 
{
  char* p1 = nullptr;
  CalcSomething( p1, p1 ); // OK
  const char* p2 = nullptr;
  CalcSomething( p2, p2 ); // Fail

}