我正在尝试在SymbolicC++ 2010 Express中编译VC++库(发行版中有特殊的VS项目),但它在与operator,相关的系统标头中出现了许多错误。例如:
1>C:\Program Files\MicrosoftVisualStudio10.0\VC\include\xlocmon(410):error C2593:'operator,‘是不明确的
对于系统标头中的此代码:
if (_Str[0] < _E0 || _E0 + 9 < _Str[0])
_Str2 += '-', ++_Off;为什么?如何编译?
发布于 2012-03-08 15:10:06
当有疑问时,添加括号:
if (_Str[0] < _E0 || _E0 + 9 < _Str[0])
(_Str2 += '-'), ++_Off;或者只需编写适当的C++代码:
if (_Str[0] < _E0 || _E0 + 9 < _Str[0])
{
_Str2 += '-';
++_Off;
}发布于 2012-03-08 15:11:30
我们不知道他们的operator,在做什么,所以这很可能是无效的,但这是一种奇怪的方法--以下是等价的和不那么奇怪的方法:
if (_Str[0] < _E0 || _E0 + 9 < _Str[0]) {
_Str2 += '-';
++_Off;
}发布于 2012-03-08 15:16:56
在90%的情况下,逗号操作符没有任何意义。解决方案是用钝器击中在头部编写代码的人,然后将其重写为:
if (_Str[0] < _E0 || _E0 + 9 < _Str[0])
{
_Off++;
_Str2 += '-';
}https://stackoverflow.com/questions/9619774
复制相似问题