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

2つのオブジェクトが同じであるかどうかは、それらのアドレスを比較することで検出できます。

if (&v1 == &rV)

それらが同じベクトルを参照している場合にのみtrueになります。

(もちろん、address-of演算子をオーバーロードしていないと仮定します:-)

于 2013-03-06T08:29:49.803 に答える