Я сталкивался с этим во время прохождения C ++ Primer 5-е издание
Стандартная библиотека определяет набор классов, представляющих арифметические c, реляционные и логические операторы .
Одним из важных аспектов этих объектов библиотечных функций является , что библиотека гарантирует, что они будут работать для указателей . Напомним, что сравнение двух не связанных между собой указателей не определено (п. 3.5.3, с. 120). Тем не менее, мы можем отсортировать вектор указателей по их адресам в памяти. Хотя для нас было бы неопределенным делать это напрямую, мы можем сделать это через один из объектов библиотечной функции:
Я не могу не задаться вопросом, как от него избавиться неопределенное поведение? Я думаю, что, возможно, приведение к какому-либо типу, достаточно большому, чтобы содержать адрес, затем сравнить. Или здесь что-то еще играет?