在std :: shared_ptr上重载运算符==

时间:2015-10-04 22:32:44

标签: c++11

我正在考虑为特定类型重载std :: shared_ptr的相等和排序运算符。如果我有以下

struct Foo { /* Stuff */ };

bool operator==( const std::shared_ptr<Foo>& lhs, const std::shared_ptr<Foo>& rhs )
{
    // Do something reasonable for equality using the Foo instances
}

所以这意味着平等将不再只是指针平等。这样做会有缺点或一些难看的陷阱吗?

1 个答案:

答案 0 :(得分:0)

完全违法并被标准禁止。随之而来的是可怕的鼻子恶魔。