[Dcmlib] explicit
Mathieu Malaterre
mathieu.malaterre at kitware.com
Wed Jun 23 20:19:58 CEST 2004
Ok j'ai relu encore le coup de explicit et voila ce que j'en tire:
class foo {
explicit foo(double d);
};
avec le explicit on ne peut plus faire:
foo f = 10.0;
sans le explicit c'est parfaitement valide.
Donc finalement il ne reste plus que la solution du constructeur avec
const char*:
foo(const char* s) : foo( std::string( s ) )
...kes vous vous en dites ?
Mathieu
Ps: ITK 1.8 est prevu pour aout, est-ce que ca vous semble raisonable
une release gdcm d'ici la ?
Eric Boix wrote:
> Salut Mathieu,
>
> Quoting Mathieu Malaterre <mathieu.malaterre at kitware.com>:
>
>> Ok j'ai relu mon 'c++ pocket reference' et tu avais raison on peut
>>mettre les deux constructeurs a explicit pour que le compilateur signal
>>qd le cast est implicit.
>
> Oui, sauf qu'en l'occurence g++ accepte explicit mais les piles de creme
> de l'heritage il passe a la trappe (bien que sur ton simple test cela
> fonctionne). Hummm...
>
>
>> Une autre maniere plus sale de le faire c'est passer un flag
>>no-implicit-cast a gcc ...
>
> Y'a t'il un pendant sous VC++ ? D'autre part, j'aime pas trop deleguer
> au compilo des taches que la semantique du langage permet de specifier. IMVHO.
>
>
>> La question est: est-ce que toutes les classes de gdcm ont un
>>constructeur explicit ? J'aime bien etre consistant ca m'evite de trop
>>reflechir, donc je dirais que oui.
>
> Soit ! Mais avant il faut que je pige pourquoi cela ne fonctionne pas.
>
>
>> Ou sinon pour tordre le coup au const char* c'est d'avoir un
>> troisieme constucteur qui appelle selon avec string (je n'aime pas cette
>>solution mais c'est gout perso).
>
> Beuark, itou.
>
> Bon, apres une discussion calme et constructive, je vais ecrire une
> premier mouture du coding style, que je place dans gdcm/DEVELOPPER.
> On en recause...
>
> Frog.
>
More information about the Dcmlib
mailing list