std::less<T *>
保证提供全序,无论两个指针是否指向同一个数组。
在最新的标准草案中,透明函数对象也是如此std::less<void>
( std::less<>
) 当你调用它的 operator()
时?
显然,同样的问题适用于 std::greater
,但我假设它们的指定相同。
最佳答案
github 的当前草案不包含任何与此相关的语言;事实上,它的定义 less<>
明确地说“返回std::forward<T>(t) < std::forward<U>(u)
”,这对于不可比较的指针来说是未定义的行为。所以……我想不要这样做。
如果您需要一个异构指针比较器,最好编写您自己的使用std::less<T*>()
的模板谓词。在适当的时候。
关于c++ - std::less<void> 和指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21079958/