FlexeLint/PC-lint警告 std::string::append 的返回值在以下简化示例代码中不被考虑:
#include <iostream>
#include <string>
int main() {
std::string s("Hell");
s.append(1,'o');
std::cout << s << std::endl;
return 0;
调用 FlexeLint 会给出以下警告:
Warning 534: Ignoring return value of function 'std::basic_string<char>::append(unsigned long, char)'
虽然该消息为真,但在这种情况下捕获返回值是没有意义的,因为std::string::append只是返回 *this。
此外,与该对象相关的任何迭代器、指针和引用都可能无效。但事实并非如此,没有使用迭代器、指针和引用。
问题
我是否错过了重要的事情,或者这仅仅是 FlexeLint 的误报?