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)'
このメッセージは true ですが、 std::string::appendは単に *this を返すだけなので、この場合の戻り値をキャッチしても意味がありません。
さらに、このオブジェクトに関連する反復子、ポインター、および参照が無効になる場合があります。しかし、これは当てはまりません。反復子、ポインター、および参照は使用されません。
質問
何か重要なことを見逃していましたか、それとも単に FlexeLint の誤検知ですか?