ブール値を返す関数のリストがあります。関数のリストを繰り返し処理し、それぞれに「テスト 1 合格」、「テスト 2 失敗」などのメッセージを書きたいと思います。
私の現在の解決策は、関数ポインターのベクトルを作成し、各関数をプッシュバックしてから、ベクトルをループすることです。以下のコード。テストごとに一般的なメッセージ (合格/不合格) コードを繰り返さずにコンテナーを回避する方法はありますか (何百ものテストがあると想像してください)。ベクトルが不要であるか、より洗練された解決策が必要であるかのように感じます。
typedef bool (*Tests)();
std::vector<Tests> tests;
tests.push_back(FASTA_FILE_READER_TEST);
tests.push_back(EXACT_MATCH_TEST);
for (int i = 0; i < tests.size(); i++) {
std::cout << "Test " << i + 1
<< (tests[i]() ? " PASSED" : " FAILED")
<< std::endl;
}