假设我正在编写一个由函数模板组成的模板库
template<T> void f(T);
要求它与预定义的A,B,C和D类一起工作,例如,必须编译以下内容:
template<> void f(A); template<> void f(B); template<> void f(C); template<> void f(D);
我可以使用哪个测试框架来编写在运行时捕获此需求而不是在编译测试代码时失败的测试用例?换句话说,我希望框架在运行时实例化模板,并在其子集失败时生成格式良好的错误报告.
我知道我可以完全放弃测试框架,只需编写一个包含上述4行的简单cc文件.但我希望我能将这个要求纳入常规的标准测试用例中,以生成测试状态报告.例如,
test f works with A: passed. test f works with B: passed. test f works with C: Failed! Cannot cast type C! test f works with D: passed. 3 of 4 tests passed. 1 of 4 tests Failed.
解决方法
编写一个产生编译器的测试用例……这就是例如autoconf测试是否存在特征.