std :: less <void>和指针类型

Dav*_*one 10 c++ language-lawyer c++14

std::less<T *> 无论两个指针是否指向同一个数组,都保证提供总顺序.

在标准的最新草案中,对于透明函数object std::less<void>(std::less<>)调用它时是否也是如此operator()

显然,同样的问题适用于std::greater,但我认为它们的具体情况相同.

Ker*_* SB 5

来自github的当前草案不包含任何语言; 实际上,它的定义less<>明确表示"返回std::forward<T>(t) < std::forward<U>(u)",这对于无法比较的指针来说是未定义的行为.所以......我想,不要这样做.

如果你需要一个异构指针比较器,最好编写自己的模板谓词,std::less<T*>()在适当的时候使用它.