J'ai une structure simple en C ++ 11
struct a {
int a;
int b;
int c;
....
}
J'aimerais utiliser cette structure comme s'il s'agissait d'un type scalaire lui-même. J'ai donc surchargé tous les opérateurs.
Un comportement que je ne peux pas trouver comment définir est l’utilisation d’une structure dans une instruction if:
a v = {1,2,3};
if (v) { }
Existe-t-il un opérateur que je peux surcharger pour activer ce comportement? Je veux le comportement standard: si un bit est 1 dans la structure, il est vrai, sinon, il est faux.
Réponses:
16 pour la réponse № 1Ajoutez une conversion booléenne explicite:
struct a
{
explicit operator bool() const
{
return a || b || c;
}
int a;
int b;
int c;
// ...
};