【发布时间】:2016-10-26 05:36:15
【问题描述】:
想象一下,我有很多可以用static_asserts 测试的模板代码,例如
template <typename Help>
class SomeUtil { ... };
static_assert(std::is_same<SomeUtil<Type>::type, int>::value, "message");
是通过创建一个仅包含此标头并编译它的main.cpp 来测试它的唯一方法吗? -fsyntax-only 似乎不起作用。
【问题讨论】:
-
好吧,我可以想到像 autotools 这样的方法。尝试编译一段特定的代码,看看正在运行的编译器是否在它上面失败。
-
@πάνταῥεῖ 我有一个小脚本可以做到这一点,但不知何故这并不让我开心..
-
您到底关心什么?您介意向我们展示您目前的方法吗?
-
@πάνταῥεῖ 我正在寻找本地人(当我说本地人时,我的意思是
gcc,clang我猜也可以)。当前的方法是使用 bash 函数来检查当前工作目录并生成一个具有随机名称的文件,包括作为参数传入的标头,编写一个小的 main 并编译它。
标签: c++ unit-testing templates constraints template-meta-programming