我正在开发一个软件项目,并且发现了许多不正确使用find_first_of(),find_first_not_of(),find_last_of()和find_last_not_of()的示例。这些std :: string方法为要搜索的一组字符采用字符串参数,而开发人员实际上意味着使用compare(),find()或rfind(),这些字符串参数用于搜索字符串。
现在教育每个人并且再也不会发生这种情况会很棒,但是,我想创建一个代码检查器来识别可疑用法并标记它们以供审查以尝试半自动化解决此问题的方法。半一般时尚。
我正在寻找良好的启发式方法,以找出几乎没有误报的大多数问题。什么正则表达式搜索模式可能有效,或者有人可能会想到其他建议尝试自动解决此问题的解决方案以获得最多的事件?
关于雇佣更优秀的开发人员等,请不要回答这些问题,我希望在可用资源的情况下改善这种情况。
答案 0 :(得分:2)
实际上,您可能需要直观地检查对find_first_of
和朋友的每次电话。似乎通常不会有很多调用,并且您可以在验证它们是否正确时以某种方式标记它们。通过检查所有呼叫,您可以确信现有问题已得到解决。
我能想象的唯一启发式是,如果“比较”字符串不是文字或常量,则更可能是错误的。