• [^] # Re: un début de réponse...

    Posté par . En réponse au message Constructeur. Évalué à 2.

    Pareil.

    Je suis pas un gourou c++, mais ce que tu veux faire, c'est pas joli joli :p.

    Ce que tu veux, c'est modifier le comportement du compilateur, en effet, le cast char* -> bool se fait à la compilation et pas à l'exécution. Les casts implicites sont une facilité fournie par le compilateur (et surement par le standard c++) pour alléger et améliorer la lisibilité du code.

    Donc si tu veux aller à l'encontre du comportement standard du compilateur, tu commences à faire des trucs pas très jolis.

    Le plus propre serait : faire un cast explicite avant l'appel du constructeur, ou faire un constructeur prenant comme type const char*. La dernière solution étant la plus propre si tu comptes proposer ta classe à d'autres devs. En effet, ce que tu recherches, c'est une notation propre et simple dans l'appel de ta classe, c'est du sucre syntaxique. Dans ce cas, ca demande toujours du travail supplémentaire derrière, pour cacher la facilité d'utilisation. De plus écrire un constructeur prenant un const char* est très facile a partir du constructeur à base de string.

    Sinon si tu veux vraiment forcer le cast, je pense qu'il doit surement exister des directives obscures permettant de modifier le comportement du compilo.