【问题标题】:"Warning: Comma within array index expression" but comma is separating function arguments“警告:数组索引表达式中的逗号”但逗号分隔函数参数
【发布时间】:2020-06-27 09:19:18
【问题描述】:

MSVC 报告

警告 C4709:数组索引表达式中的逗号运算符

在下面一行:

intersections[img::at(rotJ, rotI)];

在不了解更多信息的情况下,此警告是否有任何可能有效?

【问题讨论】:

  • 不,这是误导。
  • “任何机会”?当然,例如,您可以拥有#define at x +,这会使这实际上不是函数调用。但情况似乎不太可能。
  • @interjay 哈哈,我只是知道有人会想出一些奇怪的#define

标签: c++ visual-studio c++14 compiler-warnings


【解决方案1】:

警告C4709: comma operator within array index expression 是一个相当错误的警告,并且在整个互联网上都有大量报告。参见例如thisthisthis(9 岁)。

所以答案是,它具有误导性。

请注意,如果有人在数组索引中使用逗号运算符:

int a[3] = {1, 2, 3};
cout << a[1, 2]; // outputs 3

【讨论】:

  • 可能有趣的是,在 operator[] 中使用逗号运算符在 C++20 中已被弃用
  • 好事发生 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多