这个方法我是真的理解不来。 按照语意应该是 两个 shared_ptr 一个指向对象,另一个指向同一对象的成员,则判定为真。
但是我测试代码和结果相反。
class color {
public:
int blue;
int green;
int red;
};
int main()
{
color col;
point pi;
shared_ptr<color> share_col = make_shared<color>();
shared_ptr<int> share_col_int(share_col,&share_col->red);
shared_ptr<int> share_int(new int);
//cout << "share_col < share_col_int :" << (share_col < share_col_int) << endl;
cout << "share_col.owner_before(share_col_int) :" << share_col.owner_before(share_col_int) << endl;//0
cout << "share_col_int.owner_before(share_col) :" << share_col_int.owner_before(share_col) << endl;//0
cout << "share_col_int.owner_before(share_int) :" << share_col_int.owner_before(share_int) << endl;//1
cout << "share_int.owner_before(share_col_int) :" << share_int.owner_before(share_col_int) << endl;//0
}