私はCppUnitライブラリを使い始めました。そして、すべてが正常に機能しましたが、今では、を使用してイテレータをアサートすることに固執していますCPPUNIT_ASSERT_EQUAL
。だから私のコードがあります:
void TestingClass::test_adjacent_find()
{
// Set up
int a [5] = {1,2,3,3,5};
int b [5] = {1,2,3,4,5};
int c [1] = {1};
std::list<int> lst;
lst.push_back(1);
lst.push_back(1);
lst.push_back(5);
// Check
CPPUNIT_ASSERT_EQUAL(a+2, my_adjacent_find(a , a+5, pred_eq<int>));
CPPUNIT_ASSERT_EQUAL(b+5, my_adjacent_find(b, b+5, pred_eq<int>));
CPPUNIT_ASSERT_EQUAL(c+1, my_adjacent_find(c, c+1, pred_eq<int>));
CPPUNIT_ASSERT_EQUAL(lst.begin(), lst.end()); // problem is here
}
このテストを実行すると、以下のエラーが発生します。
/opt/local/include/cppunit/TestAssert.h:49:13:
Invalid operands to binary expression
('OStringStream' (aka 'basic_ostringstream<char>')
and 'const std::_List_iterator<int>')
この行をイテレータでコメントすると、問題なくコンパイルされます。だから私は何が間違っているのですか?そして、2つのイテレータの同等性をどのように主張する必要がありますか?ちなみに、私はxcode4.4を使用しています。