Question

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)
Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top