Вопрос

As pointed out in other questions here on SO, equality comparison between two iterators from different containers is UB.

In my case I have two list iterators, which might not be from the same container:

std::list< int >::iterator a, b;

Suppose that I know for sure that none of them is an end iterator, my question is if I am allowed to do:

&(*a) == &(*b)
Это было полезно?

Решение

Sure, you can do that, as you're not comapring the iterators but the addresses of their referands.

Assuming iterators are from different containers, this comparison cannot ever be true in a well-formed program, though.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top