我正在尝试构建一个迷你测试框架。我有一个函数接受两个由相同类型组成的类似列表的变量,我计划使用模板模板参数作为接口的一部分。到目前为止,我有这个,
template <typename C, template <class> class A, template <class> class B>
static inline void assertEquals(const A<C>& expected, const B<C>& actual) {
auto success = 0, failure = 0;
for (auto iter1 = expected.cbegin(), iter2 = actual.cbegin();
iter1 != expected.cend() && iter2 != actual.cend(); ++iter1, ++iter2) {
if (Test::assertEquals<C>(*iter1, *iter2)) {
++success;
} else {
++failure;
}
}
cout << "Success: " << success << endl
<< "Failure: " << failure << endl;
}
if 条件中的assertEquals
if 是另一个函数。我的问题是,界面是否正确?其次,我将如何使用它?这个我试过没有用
Test::assertEquals<int, std::vector, std::vector>(haystack, needle);
Test::
只是函数所在的类,并且haystack
类型needle
为std::vector<int>
.