二項演算子を使用してポインタをメンバーと比較できない理由について混乱しました<
class Point3d{
protected:
//..
public:
float x;
static list<Point3d*> *freeList;
public:
float y;
static const int chunkSize = 250;
public:
float z;
};
およびテンプレート:
template< class class_type, class data_type1, class data_type2 >
char* access_order(data_type1 class_type:: *mem1, data_type2 class_type:: *mem2)
{
return
mem1 < mem2 ?
"member 1 accurs first":
"member 2 accurs first";
}
以下のようにaccess_orderを呼び出したとき:
access_order(&Point3d::z, &Point3d::y);
報告されたg++:
"invalid operands of types ‘float Point3d::*’ and ‘float Point3d::*’ to binary ‘operator<’"
メンバーへのポインターを比較する方法はありますか?つまり、不均等な比較を意味しますか?