[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