default initialized iterator
От: flаt  
Дата: 09.01.21 06:01
Оценка:
#include <vector>

int main() {
  std::vector<int>::iterator it;

  std::vector<int> v;

  if (it != v.end() { // бум!
    int m = *it;
    return 1;
  }
  return 0;
}



Нагуглил такое: https://stackoverflow.com/a/64101477

Up to and including C++11: a default- and value-initialized iterator may contain a singular value. Technically it may not be compared, nor dereferenced.

Starting from C++14: a value-initialized forward iterator compares equal to a past-the-end iterator.


Кто прав?

ЗЫ: упало в релизе 2017, несмотря на stdcpp17.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.