std::less<T *>
гарантированно обеспечивает общий порядок, независимо от того, указывают оба указателя в один и тот же массив.
В последнем черновике стандарта, то же самое верно для прозрачного объекта функции std::less<void>
(std::less<>
), когда вы вызываете его operator()
?
Очевидно, что тот же вопрос относится к std::greater
, но я предполагаю, что они указаны одинаково.