cppcheck警告:变量未在带有初始化初始化的构造函数中实例化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cppcheck警告:变量未在带有初始化初始化的构造函数中实例化相关的知识,希望对你有一定的参考价值。

考虑此代码:

template<typename T>
class Limited

public:
   Limited(const T& min, const T& max, const T& val)
      : _minmin, _maxstd::max(min, max), _valuestd::clamp(val, min, max)


private:
   T _min;
   T _max;
   T _value;
;

使用卷曲初始化,_valuestd::clamp(val, min, max) cppcheck给我警告

成员变量Limited::_value未在构造函数中初始化

而不是用_value(std::clamp(val, min, max))初始化,它消失。

为什么要抱怨初始化?

我正在使用的cppcheck版本是1.90,从QtCreator 4.11的插件中使用

Edit:抱歉,构造函数缺少的花括号只是我的摘录中的错字

答案

您缺少括号:

Limited(const T& min, const T& max, const T& val)
    : _minmin, _maxstd::max(min, max), _valuestd::clamp(val, min, max)
 // here

以上是关于cppcheck警告:变量未在带有初始化初始化的构造函数中实例化的主要内容,如果未能解决你的问题,请参考以下文章

cppcheck 错误与我看到的不符

带有空大括号的 C++ 新初始化触发 cppcheck uninitvar 错误

cppcheck 警告:访问转发变量

如何告诉 cppcheck 忽略某些错误?

Vue警告:属性或方法“item”未在实例上定义,但在渲染期间被引用

结构变量未在 c 中初始化