通常只能比较C++中的指针是否相等.相比之下,只有指向同一完整对象(例如数组元素)的子对象的两个指针才允许小于比较.
因此T * p, * q,评估一般是非法的p < q.
标准库包含函数类模板std::less<T>等,它包含内置运算符<.但是,标准有关于指针类型(20.8.5/8)的说法:
对于模板
greater,less,greater_equal,和less_equal,对于任何指针类型的专业化产生总订单,即使内置的运营商<,>,<=,>=没有.
怎么能实现呢?甚至可以实现这个吗?
我看了看GCC 4.7.2和3.2锵,不包含任何的指针类型专业化的.它们似乎依赖于<在所有支持的平台上无条件地有效.