Saya menggunakan arahan preprosesor untuk menghapus kode, bukan komentar sama sekali:
//comment
active_code();
#if FALSE
inactive_code();
#endif
Ini membuat hal yang sangat mudah untuk dicari, dan stabilo sintaksis saya memperlakukannya sebagai komentar. Saya bahkan dapat menciutkannya menjadi satu baris:#if FALSE(...)
Anda dapat memperluas gagasan itu untuk memiliki beberapa opsi:
#if OPTION == 0
code_for_option_0();
#elif OPTION == 1
code_for_option_1();
#else
code_for_all_other_options();
#endif
Dan kompilasi pengecekan kesalahan waktu:
#if FOO >= 5
#error FOO should be less than 5!
#endif
Tentu saja, Anda tidak ingin berlebihan dalam hal ini, atau menjadi sulit untuk mengatakan apa yang sebenarnya dikompilasi dan apa yang tidak. Tetapi Anda mendapatkan idenya, dan itu adalah masalah yang sama seperti untuk kode yang dikomentari ... selama Anda hanya menggunakannya secara statis. Jika kondisi Anda dinamis, itu lebih buruk.
Untuk menentukan yang mana dalam basis kode yang ada yang tidak mempertimbangkan masalah ini sama sekali, saya tidak berpikir ada solusi universal. Anda harus menemukan pola sendiri dan mungkin kode regex untuk menemukannya.
///
dan/** ... */
komentar juga digunakan oleh beberapa generator dokumentasi, seperti Doxygen atau JSDoc. Jika Anda menggunakannya atau alat serupa, Anda mungkin tidak dapat menggunakan komentar semacam itu untuk komentar deskriptif yang tidak dimaksudkan untuk menjadi bagian dari dokumentasi.