std :: less< T *>保证提供总计,无论两个指针是否指向相同的数组.
在最新的标准草案中,对于透明函数对象std :: less< void> (std :: less?)当你调用它的operator()?
显然,同样的问题适用于std :: greater,但我认为它们是相同的.
解决方法
来自
github的当前草案不包含任何这样的语言;实际上,其定义较少,明确表示“返回std :: forward< T>(t)< std :: forward< U>(u)”,这将是不可比较的指针的未定义行为.所以…不要这样做,我想.
如果需要异构指针比较器,最好在适当的时候编写自己的模板谓词,它使用std :: less< T *>().