Un petit exemple concret.
On dispose d'une classe
atome.
Un
littéral est soit un atome (littéral positif), soit la négation d'un atome (littéral négatif).
Plutôt que de réécrire une classe, j'utilise un
std::pair<atome, bool> (en simplifiant).
Ainsi, si un littéral
l est positif (resp. régatif), alors
l.second == true (resp.
l.second == false).
Si l'on change la valeur de l'atome sans changer le signe, et inversement, le littéral reste valide et cohérent ; on a simplement changé la valeur du littéral.
Dans ce cas précis, aurais-tu tout de même utilisé une classe et masqué les données ?
Partager