Salut,
Des fois c'est pratique mais souvent, quand on n'a que des classes avec 3 données membres et 5 méthodes, faut pas exagérer quand même, 'oublier' de tester un pointeur a peu de chance d'arriver...
Compliquer le code (un visiteur sur un Boost.Variant ça complique un poil) pour une garantie de cet ordre bien souvent je ne considère pas vraiment que ça vaut le coup.
Peut-être parce qu'on peut sans doute toujours remanier pour soit séparer en deux classes (une avec une référence et l'autre sans rien du tout), soit utiliser un Null Object, soit un Composite, etc.. ?
MAT.