逗号操作员的左右操作数没有效果(警告)
Left and Right operand of comma operator has no effect (Warning)
我在班上的构造方警告,我以前从未见过。这就是我的构造函数的样子。
Account(std::string n = "NULL", std::string i = "0", Stats s = (0,0,1) )
: name(n), id(i), stat(s) {}
如果我删除任何这些逗号,则会导致编译错误,不是吗?该警告是不正确的,还是可以更改的东西来修复它?
问题是: (0,0,1)
。
是围绕0,0,1
的括号,该表达式评估为1
。(逗号运算符是评估第一个和第二个表达式并返回第二个表达式的Infix操作员。在这种情况下,您有两个这样的操作员。)
我不知道你在那里想要什么,但我猜不是。
编辑:看来您想要Stats s(0,0,1)
。
这个问题很可能在该部分Stats s = (0,0,1)
中。C 将其视为要计算的表达式序列,同时仅保留最后一个值。它返回1.您可能是指
Stats s = Stats(0,0,1)
如果您的统计结构具有这样的构造函数,则有效。请注意,在C 11中,您具有此较短的语法:
Stats s = {0,0,1}
我认为您正在寻找的是为function参数提供一个struct的默认值,我认为在这里讨论了如何将默认值分配给C 功能?
相关文章:
- 警告处理为错误这里有什么问题
- 关于std::move的使用,是否有编译警告
- unique_ptr:在分配之前调用 reset 有什么效果
- 为什么布尔开关语句有编译器警告?
- 在 Cocos2dx 中初始化粒子效果后的警告 - "libpng warning: iCCP: known incorrect sRGB profile"
- 从 int 中剥离位时,编译器会警告一个转换,但不警告其他转换.有解决方法吗?
- 有没有办法在从临时返回按值string_view时获得编译器警告?
- 有没有办法禁用 CodeSonar 生成的特定行上的警告
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- 有没有办法在初始化字符串时避免来自 clang-tidy(fuchsia-default-arguments)的警告?
- 是否有将引用返回到临时引用的C++警告?
- 是否有任何编译器标志可以在下面的代码中用于报告有关 UB 的警告?
- 是否有 GCC 警告,用于使用 C 库中的符号而不是通过命名空间 std?
- 是否有跨平台的方法可以在C++中禁用已弃用的警告?
- 是否有 GCC 标志来发出有关作用域内相同变量重定义的警告?
- :<command-line>0:3:警告:ISO C++11 要求宏名称后有空格
- 是否有任何C++编译器可以发出悬而未决的引用警告?
- 有什么方法可以为函数指针比较生成警告?
- 逗号操作员的左右操作数没有效果(警告)
- 在这段代码中,我有一个警告:控制达到非void函数的结束[- return-type].我怎样才能解决这个问题