【发布时间】:2009-11-11 02:55:26
【问题描述】:
我在这样的断言语句中收到警告controlling expression is constant:
assert(... && "error message");
为什么在这个断言上出现这个警告?如何取消此警告?
NVCC 是 NVIDIA cuda 编译器,我认为它是基于 LLVM 的。当使用 GCC 或 Visual C++ 编译器可以正常编译时,为什么会给出这个警告?
【问题讨论】:
-
编译器应该根据 NVCC2.0 参考在 linux 上默认为 gcc。
-
而 gcc(至少 3.4.4 和 4.3.2)不会给出这样的警告。也许尝试通过
#ifdef __GNUC__/__GNUG__验证编译器? -
我什至无法重现警告,而且我没有 gcc 有任何标志来抑制该警告。很奇怪。
标签: c++ compiler-construction warnings nvcc