bugprone-unused-return-value¶
警告未使用的函数返回值。可以配置要检查的函数。
忽略具有赋值语义的运算符重载。
选项¶
- CheckedFunctions¶
要检查的函数的以分号分隔的列表。此参数支持正则表达式。如果名称和范围匹配(带任何参数),则检查函数。默认情况下,将检查以下函数:
^::std::async$, ^::std::launder$, ^::std::remove$, ^::std::remove_if$, ^::std::unique$, ^::std::unique_ptr::release$, ^::std::basic_string::empty$, ^::std::vector::empty$, ^::std::back_inserter$, ^::std::distance$, ^::std::find$, ^::std::find_if$, ^::std::inserter$, ^::std::lower_bound$, ^::std::make_pair$, ^::std::map::count$, ^::std::map::find$, ^::std::map::lower_bound$, ^::std::multimap::equal_range$, ^::std::multimap::upper_bound$, ^::std::set::count$, ^::std::set::find$, ^::std::setfill$, ^::std::setprecision$, ^::std::setw$, ^::std::upper_bound$, ^::std::vector::at$, ^::bsearch$, ^::ferror$, ^::feof$, ^::isalnum$, ^::isalpha$, ^::isblank$, ^::iscntrl$, ^::isdigit$, ^::isgraph$, ^::islower$, ^::isprint$, ^::ispunct$, ^::isspace$, ^::isupper$, ^::iswalnum$, ^::iswprint$, ^::iswspace$, ^::isxdigit$, ^::memchr$, ^::memcmp$, ^::strcmp$, ^::strcoll$, ^::strncmp$, ^::strpbrk$, ^::strrchr$, ^::strspn$, ^::strstr$, ^::wcscmp$, ^::access$, ^::bind$, ^::connect$, ^::difftime$, ^::dlsym$, ^::fnmatch$, ^::getaddrinfo$, ^::getopt$, ^::htonl$, ^::htons$, ^::iconv_open$, ^::inet_addr$, isascii$, isatty$, ^::mmap$, ^::newlocale$, ^::openat$, ^::pathconf$, ^::pthread_equal$, ^::pthread_getspecific$, ^::pthread_mutex_trylock$, ^::readdir$, ^::readlink$, ^::recvmsg$, ^::regexec$, ^::scandir$, ^::semget$, ^::setjmp$, ^::shm_open$, ^::shmget$, ^::sigismember$, ^::strcasecmp$, ^::strsignal$, ^::ttyname$
std::async()
。不使用返回值会使调用变为同步。std::launder()
。不使用返回值通常意味着程序员误解了函数接口。只有返回的指针被“清洗”,而不是参数。std::remove()
、std::remove_if()
和std::unique()
。返回的迭代器指示要保留的元素和要删除的元素之间的边界。不使用返回值意味着关于要删除哪些元素的信息将丢失。std::unique_ptr::release()
。如果不使用返回值,如果同一个指针没有存储在其他地方,则会导致资源泄漏。通常,忽略release()
返回值表示程序员将该函数与reset()
混淆。std::basic_string::empty()
和std::vector::empty()
。不使用返回值通常表示程序员将该函数与clear()
混淆。
- CheckedReturnTypes¶
要检查的函数返回类型的以分号分隔的列表。默认情况下,将检查以下函数返回类型:^::std::error_code$、^::std::error_condition$、^::std::errc$、^::std::expected$、^::boost::system::error_code$
- AllowCastToVoid¶
控制是否允许将返回值强制转换为
void
。默认值:false.
cert-err33-c 是此检查的别名,它检查一组固定且大型的标准库函数。