1

ミニテストフレームワークを構築しようとしています。同じ型で構成される 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;
    }

assertEqualsif 条件の は別の関数です。私の質問は、インターフェイスは正しいですか? 第二に、それをどのように使用しますか?私はこれを無駄に試しました、

    Test::assertEquals<int, std::vector, std::vector>(haystack, needle);

Test::は関数が存在する単純なクラスでありhaystackneedle型はstd::vector<int>です。

4

1 に答える 1