Ce code suivant (contenant un bogue vicieux) est compilé avec GCC sans aucun avertissement. Mais, bien sûr, cela ne fonctionne pas comme prévu par le développeur (moi).
#include <iostream>
struct A
{
bool b;
void set(bool b_) { this->b = b_; }
bool get() const { return this-b; } // The bug is here: '-' instead of '->'
};
int main()
{
A a;
a.set(true);
std::cout << a.get() << std::endl; // Print 1
a.set(false);
std::cout << a.get() << std::endl; // Print 1 too...
return 0;
}
Quel avertissement puis-je ajouter pour le compilateur (GCC 4.8) afin d'éviter ce type de faute de frappe?
Question liée: Existe-t-il une option pour forcer (ou avertir) l'accès aux variables / fonctions membres avec this->
?