为什么Clang会警告未使用的指针和未使用的原语,而不是未使用的对象?

时间:2017-07-22 20:25:35

标签: c++ clang

在此代码段中...

sf::Time obj;
sf::Time* ptr;
int i;
int* p2;

第一行不会产生警告,但其他三行都会产生警告。怎么样?

(顺便说一句,这是一个完整的方法。对变量没有任何处理。)

1 个答案:

答案 0 :(得分:6)

对象可以有构造函数和析构函数。因此,虽然您可能没有使用实际变量,但您可能依赖于在构造函数或析构函数中运行的代码。

这方面的一个很好的例子是std::lock_guard,它利用析构函数在锁超出范围时解锁互斥锁。