初始化错误之前缺少 MSVC 初始化程序列表使用

问题描述 投票:0回答:1

如何让 MSVC/Visual Studio 在下面初始化之前给出有关正在使用的成员

m_second
的错误?

这与 C5038 类似但不同,有关初始化顺序的错误(注释行)。

https://godbolt.org/z/P6TPG5W7E

class MyClass {
public:
    MyClass() : m_first(m_second) {}
    //MyClass() : m_second(123), m_first(m_second) {}
    int m_first;
    int m_second = 42;
};

int test() {
    MyClass obj;
    return obj.m_first;
}
c++ visual-c++ initialization member-initialization
1个回答
0
投票

在 Visual Studio 中,运行代码分析 -> 警告 C26495。 项目属性 -> 代码分析 -> 在构建时启用代码分析。

通过配置规则集可以将警告视为错误。

对于Godbolt,有

Add tool

enter image description here

我还没有找到适合静态分析的参数。

© www.soinside.com 2019 - 2024. All rights reserved.