Peringatan C26457
(void)
tidak boleh digunakan untuk mengabaikan nilai pengembalian, gunakan 'std::ignore =
' sebagai gantinya (es.48)
Keterangan
Kutipan dari C++ Core Guideline ES.48:
Jangan pernah mentransmisikan untuk
(void)
mengabaikan nilai yang[[nodiscard]]
dikembalikan. Jika Anda sengaja ingin membuang hasil seperti itu, pertama-tama pikirkan dengan keras apakah itu benar-benar ide yang baik (biasanya ada alasan yang baik penulis fungsi atau jenis pengembalian yang digunakan[[nodiscard]]
di tempat pertama). Jika Anda masih berpikir itu sesuai dan peninjau kode Anda setuju, gunakanstd::ignore =
untuk menonaktifkan peringatan yang sederhana, portabel, dan mudah di grep.
Nama analisis kode: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST
Contoh
Gunakan std::ignore
alih-alih transmisi ke void
:
struct S{};
[[nodiscard]] S getS();
void function() {
(void) getS(); // C26457
std::ignore = getS(); // OK
}