Any*_*orn 6 c++ compiler-construction warnings nvcc
我controlling expression is constant在assert语句中收到警告,如下所示:
assert(... && "error message");
Run Code Online (Sandbox Code Playgroud)
为什么这个警告就这个断言?我怎么能压制这个警告?
NVCC是NVIDIA cuda编译器,我认为它基于LLVM.当GCC或Visual C++编译器编译好时,为什么会发出此警告?
一个可移植的替代方案(可能包含在宏中)将类似于:
{
const bool error_message = true;
assert([...] && error_message);
}
Run Code Online (Sandbox Code Playgroud)
为了澄清我的意思:
#define myAssert(msg, exp) { const bool msg(true); assert(msg && (exp)); }
// usage:
myAssert(ouch, a && b);
Run Code Online (Sandbox Code Playgroud)
...给出例如:
断言“ouch && (a && b)”失败 [...]