gpt4 book ai didi

c++ - 查找未使用的对象(非原始值)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:41:43 26 4
gpt4 key购买 nike

跟进问题:g++ does not show a 'unused' warning .

我完全理解为什么 g++ 不警告这些变量,但我希望它无论如何都能找到它们。我正在处理的代码没有任何这些特殊情况,所以一个 FloatArray x; 几乎肯定是遗留的。

即使我必须标记单个类(例如警告未使用的 FloatArray 对象),它也会非常有用。我能做什么?

最佳答案

好吧,对于 GCC,下面的代码会如您所愿发出警告:

struct Foo
{
};
struct Bar
{
Foo f;
};
int main()
{
Bar b; //warning: unused variable 'b'
}

但是如果您向 Foo 或 Bar 结构添加一个构造函数/析构函数,即使是一个微不足道的,它也不会发出警告。

struct Foo
{
Foo() {}
};
struct Bar
{
Foo f;
};
int main()
{
Bar b; //no warning! It calls Foo::Foo() into b.f
}

所以重获警告的最简单方法是有条件地编译所有相关的构造函数和析构函数:

struct Foo
{
#ifndef TEST_UNUSED
Foo() {}
#endif
};
struct Bar
{
Foo f;
};
int main()
{
Bar b; //warning!
}

现在用 g++ -DTEST_UNUSED 编译以检查额外未使用的变量。

这不是我最聪明的想法,但它确实有效。

关于c++ - 查找未使用的对象(非原始值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com