assert(0)
在TensorRT/samples/common/logging.h
的LogStreamConsumer:: severityPrefix
中使用了assert(0)
:
class LogStreamConsumer : protected LogStreamConsumerBase, public std::ostream
{
//...
private:
static std::string severityPrefix(Severity severity)
{
switch (severity)
{
//F for FATAL?
case Severity::kINTERNAL_ERROR: return "[F] ";
case Severity::kERROR: return "[E] ";
case Severity::kWARNING: return "[W] ";
case Severity::kINFO: return "[I] ";
case Severity::kVERBOSE: return "[V] ";
default: assert(0); return "";
}
}
//...
};
參考What does assert(0) mean?,assert(0)
是用來標記"only reachable if there is a bug in my code"的部份用的,也就是說,在正常情況下,程序不應該走到default
這個分支;如果到了這個分支,就說明代碼中有bug存在。