ミニテストフレームワークを構築しようとしています。同じ型で構成される 2 つのリストのような変数を受け取る 1 つの関数があり、インターフェイスの一部としてテンプレート テンプレート パラメーターを使用する予定です。これまでのところ、私はこれを持っています、
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;
}
assertEquals
if 条件の は別の関数です。私の質問は、インターフェイスは正しいですか? 第二に、それをどのように使用しますか?私はこれを無駄に試しました、
Test::assertEquals<int, std::vector, std::vector>(haystack, needle);
Test::
は関数が存在する単純なクラスでありhaystack
、needle
型はstd::vector<int>
です。