On Wed, 22 Sep 2004 11:21:47 +0200, Arnaud Meurgues :
Pourquoi pas simplement un static_cast ?
Parce que la question portait sur l'emplacement du cast, pas son type.
-- ;-)
Gabriel Dos Reis
"mmm" writes:
| Les mécanismes du type dynamic_cast<type> sont de peux d'utilité, autant se | faire ses propres templates en utilisant une technique simili com (addref, | release, queryinterface, ... pointeurs observer<>, addrefer<>, ...) y | compris pour les objets sans ref count (getinterface) qui balance des | exceptions en cas de pb. | | Les cast C je ne les utilise principalement que pour caster de void* <-> | type* et en règle général quand je veux blouser le compilo mais j'évite | grave, il y a quelque rares cas(pr moi) où static_cast peut se réveler | indispensable (ex: cast d'une interface particulière/héritage multiple | basique d'une classe vers un truc style void** pr pas que le compilo | s'emmèle les pédales, le seul endroit où j'utilise ce type de cast). | Et l'intérêt du reinterpret_cast j'en vois pas, si ce n'est ce que tu | disais, le côté "grepable", qui peut être effectivement important, mais les | cast C à condition d'être "propre" peuvent l'être aussi (bon par type :-) | mais perso j'ai jamais eu à faire ça et c'est plus du à des carrences de nos | env de dev). | Les cast C sont, par contre relativement dangereux, et lorsqu'un peu plus de | contrôle serait bienvenu, les cast c++ ne me paraissent pas à la hauteur de | la tâche (ex: si en plus de la longueur de la syntaxe, je dois me taper le | test du retour pour balancer une exception au cas où la classe demandée | n'est pasdispo, ben je préfère refaire le truc...;-) ) .
Groumph.
Consulte la liste des bouquins de la FAQ ; prends-en un ; étudie-le sérieusement. Et essaie d'en retenir quelque chose.
-- Gaby
"mmm" <mmm@devbooster.com> writes:
| Les mécanismes du type dynamic_cast<type> sont de peux d'utilité, autant se
| faire ses propres templates en utilisant une technique simili com (addref,
| release, queryinterface, ... pointeurs observer<>, addrefer<>, ...) y
| compris pour les objets sans ref count (getinterface) qui balance des
| exceptions en cas de pb.
|
| Les cast C je ne les utilise principalement que pour caster de void* <->
| type* et en règle général quand je veux blouser le compilo mais j'évite
| grave, il y a quelque rares cas(pr moi) où static_cast peut se réveler
| indispensable (ex: cast d'une interface particulière/héritage multiple
| basique d'une classe vers un truc style void** pr pas que le compilo
| s'emmèle les pédales, le seul endroit où j'utilise ce type de cast).
| Et l'intérêt du reinterpret_cast j'en vois pas, si ce n'est ce que tu
| disais, le côté "grepable", qui peut être effectivement important, mais les
| cast C à condition d'être "propre" peuvent l'être aussi (bon par type :-)
| mais perso j'ai jamais eu à faire ça et c'est plus du à des carrences de nos
| env de dev).
| Les cast C sont, par contre relativement dangereux, et lorsqu'un peu plus de
| contrôle serait bienvenu, les cast c++ ne me paraissent pas à la hauteur de
| la tâche (ex: si en plus de la longueur de la syntaxe, je dois me taper le
| test du retour pour balancer une exception au cas où la classe demandée
| n'est pasdispo, ben je préfère refaire le truc...;-) ) .
Groumph.
Consulte la liste des bouquins de la FAQ ; prends-en un ; étudie-le
sérieusement. Et essaie d'en retenir quelque chose.
| Les mécanismes du type dynamic_cast<type> sont de peux d'utilité, autant se | faire ses propres templates en utilisant une technique simili com (addref, | release, queryinterface, ... pointeurs observer<>, addrefer<>, ...) y | compris pour les objets sans ref count (getinterface) qui balance des | exceptions en cas de pb. | | Les cast C je ne les utilise principalement que pour caster de void* <-> | type* et en règle général quand je veux blouser le compilo mais j'évite | grave, il y a quelque rares cas(pr moi) où static_cast peut se réveler | indispensable (ex: cast d'une interface particulière/héritage multiple | basique d'une classe vers un truc style void** pr pas que le compilo | s'emmèle les pédales, le seul endroit où j'utilise ce type de cast). | Et l'intérêt du reinterpret_cast j'en vois pas, si ce n'est ce que tu | disais, le côté "grepable", qui peut être effectivement important, mais les | cast C à condition d'être "propre" peuvent l'être aussi (bon par type :-) | mais perso j'ai jamais eu à faire ça et c'est plus du à des carrences de nos | env de dev). | Les cast C sont, par contre relativement dangereux, et lorsqu'un peu plus de | contrôle serait bienvenu, les cast c++ ne me paraissent pas à la hauteur de | la tâche (ex: si en plus de la longueur de la syntaxe, je dois me taper le | test du retour pour balancer une exception au cas où la classe demandée | n'est pasdispo, ben je préfère refaire le truc...;-) ) .
Groumph.
Consulte la liste des bouquins de la FAQ ; prends-en un ; étudie-le sérieusement. Et essaie d'en retenir quelque chose.
-- Gaby
kanze
Fabien LE LEZ wrote in message news:...
On Wed, 22 Sep 2004 04:33:43 +0200, Olivier Bruckner :