Coverity жаловался, что различные вызовы функций в нашей кодовой базе не проверяют возвращаемое значение.
Не проверенное возвращаемое значение (CHECKED_RETURN) 3.check_return: вызов метода Append без проверки возвращаемого значения (как это делается в другом месте 73 из 78 раз).
В прошлом мы бы просто решили эту проблему (после двойной проверки, что возвращаемое значение действительноне было важно), приведя возврат к void
(как обсуждено здесь ):
(void)Foo.Append(bar);
Однако мы движемся к включению всех предупреждений, и обрабатывая предупреждения как ошибки, поэтому я немного обеспокоен тем, что приведенный выше код сгенерирует диагностику old-style-cast
.Если это так, мне нужно изменить наш код на более уродливый формат:
static_cast<void>( Foo.Append(bar) );
Однако оба gcc и clang , похоже, способныскомпилируйте этот код ( первая форма) без жалоб.Итак, я полагаю, что последняя форма моего вопроса такова: считается ли приведение функции, возвращаемой к void
, исключением из правила, если речь идет о приведениях в стиле C?Или мне нужно дважды проверить мой код и посмотреть, действительно ли рассматриваемые строки не включены в эти сборки?