• [^] # Re: Re : Ambigüités entre opérateurs

    Posté par . En réponse au message Ambigüités entre opérateurs. Évalué à 2.

    Merci pour ces réponses

    Pourquoi pour chaque type ? Vu que les types entiers peuvent être promus entre eux, un constructeur prenant un int en paramètre suffit largement.

    C'est vrai. Mais au moment où j'avais commencé la classe en question, je ne savais pas si le compilateur aurait la bonne idée de le faire. J'aurais pu vérifier, toutefois ...

    Et si la valeur du BigInt est plus grande que celle du type natif que tu veux, il se passe quoi ?

    Typiquement, j'adopte le même comportement que lorsque l'on passe d'un long à un short, par exemple. Je tronque et conserve les octets de poids faible. C'est aussi pour cela que je veux qu'un entier soit implicitement converti vers un BigInt et pas l'inverse, autrement les résultats seront erronés.

    Ce que je ferais, c'est de mettre des fonctions style GetLong, et un opérateur < pour comparer deux BigInt, la comparaison entier->BigInt étant gérée par le constructeur.

    C'est que je voulais éviter. L'opérateur s'appuyant sur les constructeurs est déjà en place, mais l'utilisateur ne comprendra pas pourquoi dans un sens on peut directement comparer un BigInt à un entier, et pas dans l'autre ...