我正在寻找llvm clang对C ++标准库的实现......
在文件mutex.cpp
中,我找到了以下代码:
void
mutex::unlock() _NOEXCEPT
{
int ec = pthread_mutex_unlock(&__m_);
(void)ec; // What??, Why??? O.o
assert(ec == 0);
}
我不明白那句话在做什么以及为什么...... 我需要一些解释。
答案 0 :(得分:4)
我认为这个表达式用于避免编译器警告变量已声明但未被使用。
由于 user2864740 指出此代码中的断言语句可以是mcaro,在某些情况下不使用该变量。也就是说它可以扩展为空语句。