附上:
\bif\s?\([^=!<>\r\n]*=\s?[^=!<>\r\n]*\s?\)\s*\{
长时间不写c++代码,今天竟然不知怎么回事写出了if(a = b)的错误代码,于是写了一个正则表达式来查询整个代码库里面有没有其他人有这样的错误。
最后发现有一些第三方的库喜欢if(a=b)这样子用,
意思为
a=b;
if(a)
{
}
是他们的省一行代码的简写,不是错误。但,如果不是第三方库,自己人写的这样的代码,八成是错的。
\bif\s?\([^=!<>\r\n]*=\s?[^=!<>\r\n]*\s?\)\s*\{
长时间不写c++代码,今天竟然不知怎么回事写出了if(a = b)的错误代码,于是写了一个正则表达式来查询整个代码库里面有没有其他人有这样的错误。
最后发现有一些第三方的库喜欢if(a=b)这样子用,
意思为
a=b;
if(a)
{
}
是他们的省一行代码的简写,不是错误。但,如果不是第三方库,自己人写的这样的代码,八成是错的。