【问题标题】:Visual Studio variables unused (4101) sometimes has no warning未使用的 Visual Studio 变量 (4101) 有时没有警告
【发布时间】:2021-09-23 22:55:31
【问题描述】:

当我在 Visual Studio(2017 和 2019)中定义一个未使用的变量时,我收到了不一致的警告。我创建的类的基元和实例似乎总是发出警告,而像 std::vector 这样的 stl 容器没有收到警告。可能是什么原因造成的,有没有办法确保警告出现在 stl 容器上?

例如,

// this creates a warning
void foo()
{
    int my_int;
}

// this does not create a warning
void bar()
{
    std::vector<int> my_vec;
}

【问题讨论】:

  • 这不是标准库类型的问题。比较:godbolt.org/z/ddv9Kobso。这似乎是涉及初始化/销毁的“琐碎”问题。

标签: c++ visual-studio-2017 visual-studio-2019


【解决方案1】:

在声明 stl 变量时,会调用默认构造函数。因此,VS 认为它们实际上是被使用过的。因此,VS 只会在您 什么都不做 而是向变量声明(并赋值)时向您发出警告。正如评论中提到的,这都是关于初始化和销毁​​的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多