3

假设我有:

  std::vector<Foo> v1;
  std::vector<Foo> v2;
  std::vector<Foo>& rV = v1;

我怎样才能做这样的测试:

  TEST_EQ(v1, rV);
  TEST_NOT_EQ(v2, rV);

我想这对于那些对代码进行单元测试的人来说是一个常见问题。

4

1 回答 1

7

您可以通过比较它们的地址来检测两个对象是否相同。

if (&v1 == &rV)

只有当它们引用相同的向量时才会为真。

(当然假设您没有重载地址运算符:-)

于 2013-03-06T08:29:49.803 回答