Это не стоит того, чтобы так мало тестов, но если у вас было много тестов, вы могли бы поместить их в список и перебрать их:
#include <iostream>
#include <string>
using namespace std;
struct TEST {
bool (*func)(int);
string msg;
};
bool isMult23(int i) { return i % 23 == 0; }
bool isEven(int i) { return i % 2 == 0; }
bool isOdd(int i) { return !isEven(i); }
bool isOther(int i) { return true; } // sentinel, always true
TEST test[] = {
isMult23,"is multiple of 23",
isEven,"is even",
isOdd,"is odd",
isOther,"is something else"
};
string eval(int value)
{
int i = 0;
while(!test[i].func(value))
i++;
return test[i].msg;
}
int main()
{
cout << eval(46) << endl;
cout << eval(78) << endl;
cout << eval(81) << endl;
return 0;
}
выход
is multiple of 23
is even
is odd