Hum... Ce genre de réflexions en C++, avec en plus une réponse à l'envers... ça s'appelle un troll, c'est bien ça ? Dire que l'espace d'un instant, j'ai failli y tomber :-/
-- ;-)
On Wed, 22 Sep 2004 05:57:34 +0200, "mmm" <mmm@devbooster.com>:
et j'aime pas les machin_cast
Hum... Ce genre de réflexions en C++, avec en plus une réponse à
l'envers... ça s'appelle un troll, c'est bien ça ?
Dire que l'espace d'un instant, j'ai failli y tomber :-/
Hum... Ce genre de réflexions en C++, avec en plus une réponse à l'envers... ça s'appelle un troll, c'est bien ça ? Dire que l'espace d'un instant, j'ai failli y tomber :-/
-- ;-)
mmm
Intelligent... Réponse à l'envers? précise mon ami
Pas mal pour une première tentative de participation à ce forum... je suis ravi...
"Fabien LE LEZ" a écrit dans le message de news:
On Wed, 22 Sep 2004 05:57:34 +0200, "mmm" :
et j'aime pas les machin_cast
Hum... Ce genre de réflexions en C++, avec en plus une réponse à l'envers... ça s'appelle un troll, c'est bien ça ? Dire que l'espace d'un instant, j'ai failli y tomber :-/
-- ;-)
Intelligent...
Réponse à l'envers? précise mon ami
Pas mal pour une première tentative de participation à ce forum... je suis
ravi...
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message de
news:ve42l0l4s6pgb1m4ujqdrbeul72nc18ash@4ax.com...
On Wed, 22 Sep 2004 05:57:34 +0200, "mmm" <mmm@devbooster.com>:
et j'aime pas les machin_cast
Hum... Ce genre de réflexions en C++, avec en plus une réponse à
l'envers... ça s'appelle un troll, c'est bien ça ?
Dire que l'espace d'un instant, j'ai failli y tomber :-/
Intelligent... Réponse à l'envers? précise mon ami
Pas mal pour une première tentative de participation à ce forum... je suis ravi...
"Fabien LE LEZ" a écrit dans le message de news:
On Wed, 22 Sep 2004 05:57:34 +0200, "mmm" :
et j'aime pas les machin_cast
Hum... Ce genre de réflexions en C++, avec en plus une réponse à l'envers... ça s'appelle un troll, c'est bien ça ? Dire que l'espace d'un instant, j'ai failli y tomber :-/
ou plus simple: botstates[client] = (bot_state_t*)G_Alloc(sizeof(bot_state_t)); (je suis un feignant ;-)
Moi ausi, comme tout bon développeur
et j'aime pas les machin_cast :-) )
Pas moi. On peut objectivement trouver des avantages aux machin_cast, comme par exemple le fait de mieux discerner de quel type de cast il s'agit, le fait de permettre des choses que les anciens casts ne permettent pas d'écrire, le fait d'être plus facilement grepables, soit par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
-- Loïc
mmm wrote:
ou plus simple:
botstates[client] = (bot_state_t*)G_Alloc(sizeof(bot_state_t));
(je suis un feignant ;-)
Moi ausi, comme tout bon développeur
et j'aime pas les machin_cast :-) )
Pas moi. On peut objectivement trouver des avantages aux machin_cast,
comme par exemple le fait de mieux discerner de quel type de cast il
s'agit, le fait de permettre des choses que les anciens casts ne
permettent pas d'écrire, le fait d'être plus facilement grepables, soit
par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
ou plus simple: botstates[client] = (bot_state_t*)G_Alloc(sizeof(bot_state_t)); (je suis un feignant ;-)
Moi ausi, comme tout bon développeur
et j'aime pas les machin_cast :-) )
Pas moi. On peut objectivement trouver des avantages aux machin_cast, comme par exemple le fait de mieux discerner de quel type de cast il s'agit, le fait de permettre des choses que les anciens casts ne permettent pas d'écrire, le fait d'être plus facilement grepables, soit par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
-- Loïc
mmm
"Fabien LE LEZ" wrote:
[...] en plus une réponse à l'envers...[...]
http://www.giromini.org/usenet-fr/repondre.html
-- ;-)
Euh... merci :-) ... je recommencerai plus ;-) Côté usenet je suis un newbie, veuillez m'en excuser.
"Fabien LE LEZ" <gramster@gramster.com> wrote:
[...] en plus une réponse à l'envers...[...]
http://www.giromini.org/usenet-fr/repondre.html
--
;-)
Euh... merci :-) ... je recommencerai plus ;-)
Côté usenet je suis un newbie, veuillez m'en excuser.
Euh... merci :-) ... je recommencerai plus ;-) Côté usenet je suis un newbie, veuillez m'en excuser.
Fabien LE LEZ
On Wed, 22 Sep 2004 08:41:15 +0200, "mmm" :
Côté usenet je suis un newbie
Dans ce cas, j'en profite aussi pour te filer l'URL de la FAQ, au cas où tu l'aurais ratée : http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/
-- ;-)
On Wed, 22 Sep 2004 08:41:15 +0200, "mmm" <mmm@devbooster.com>:
Côté usenet je suis un newbie
Dans ce cas, j'en profite aussi pour te filer l'URL de la FAQ, au cas
où tu l'aurais ratée :
http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/
Dans ce cas, j'en profite aussi pour te filer l'URL de la FAQ, au cas où tu l'aurais ratée : http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/
-- ;-)
mmm
"Loïc Joly" wrote:
et j'aime pas les machin_cast :-) )
Pas moi. On peut objectivement trouver des avantages aux machin_cast, comme par exemple le fait de mieux discerner de quel type de cast il s'agit, le fait de permettre des choses que les anciens casts ne permettent pas d'écrire, le fait d'être plus facilement grepables, soit par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
J'aurai pt etre même du commencer par ça ;-), déjà je dois avouer une chose, j'ai commencé par le C, et je n'ai passé que qq petits jours à essayer les ..._cast(:-)) mais j'ai désormais une bonne experience en C++, et mon boulot consiste essentiellement ds le dev de lib c++, et outils de dev divers. Je m'explique pr les casts:
Dans un contexte de dev où les exceptions c++ sont utilisées systématiquement en tant que système de gestion d'erreur global (erreurs systèmes aussi bien qu'erreurs utilisateurs, la moindre fct peut renvoyer une exception ou presque y compris les ctor d'objets, ...), où le multi threading est lui aussi omniprésent, où les composants utilisés par l'appli peuvent être déchargé, mis à jour à chaud, ... en gros où quasi rien n'est linéaire, où la durée de vie des objets manipulés n'est garantissable qu'a l'aide entre autre d'un système de ref count, où tout ou presque est modulaire, ... pr moi le rève :-): 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...;-) ) . En ce qui concerne la lisibilité, ayant une longue experience des languages type syntaxe C, j'aime pas trop les languages trop littéraux (type vb, cobol, pascal...), question de goût ou d'habitude, j'ai du coup plus de mal à lire un truc du style reinterpret_cast<int*>(arg) que ça: (int*)arg.
En gros, pr moi l'idée est bonne, mais ça en fait trop peu, et ce serait surtout intéressant si l'héritage multiple, le vrai (pas celui qu'avec une classe de base et plein d'interface: ça c'était facile à gérer) marchait... Si le c++ offrait un peu plus de possibilité pour le rendre un peu moins statique (style: rtti améliorés permettant d'énumérer les membres d'une instance de classe, ..., etc...) Pr moi ça fait parti des quelques pans du C++ qui malheureusement ne sont pas terminés et sont à priori pas prêt de l'être vu l'évolution de la norme, à quand le D++ ? :-)
Dans le même ordre d'idée j'ai banni l'utilisation des infos rtti de mes sources, après avoir vu les faibles possibilités que ça offrait et que ça ne me permettait pas de me passer ni même de simplifier mon propre système d'info dynamique (class factory, publication de c++ pr du scripting, ...).
La question pr moi finalement ce serait plutôt: Quels avantages apportent réellement les nouveaux cast, les infos rtti par rapport aux cast C, aux "rtti à la mimine" dans le cadre des possibilités que nous offre aujourd'hui nos machines, de l'évolution du dev en général, vu de ma lorgnette, où l'on a de plus en plus besoin à la fois de dynamicité et de staticité (ex: scripting embarqué ds une appli de gestion, avec pq pas un système de plugins bdd, support d'images, modules métiers fournis par des boites externes, ...) ?.
Voili, allez au boulot feignant ! (prenez le pas mal: je parle pr moi :-))
"Loïc Joly" wrote:
et j'aime pas les machin_cast :-) )
Pas moi. On peut objectivement trouver des avantages aux machin_cast,
comme par exemple le fait de mieux discerner de quel type de cast il
s'agit, le fait de permettre des choses que les anciens casts ne
permettent pas d'écrire, le fait d'être plus facilement grepables, soit
par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
J'aurai pt etre même du commencer par ça ;-), déjà je dois avouer une chose,
j'ai commencé par le C, et je n'ai passé que qq petits jours à essayer les
..._cast(:-)) mais j'ai désormais une bonne experience en C++, et mon boulot
consiste essentiellement ds le dev de lib c++, et outils de dev divers.
Je m'explique pr les casts:
Dans un contexte de dev où les exceptions c++ sont utilisées
systématiquement en tant que système de gestion d'erreur global (erreurs
systèmes aussi bien qu'erreurs utilisateurs, la moindre fct peut renvoyer
une exception ou presque y compris les ctor d'objets, ...), où le multi
threading est lui aussi omniprésent, où les composants utilisés par l'appli
peuvent être déchargé, mis à jour à chaud, ... en gros où quasi rien n'est
linéaire, où la durée de vie des objets manipulés n'est garantissable qu'a
l'aide entre autre d'un système de ref count, où tout ou presque est
modulaire, ... pr moi le rève :-):
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...;-) ) .
En ce qui concerne la lisibilité, ayant une longue experience des languages
type syntaxe C, j'aime pas trop les languages trop littéraux (type vb,
cobol, pascal...), question de goût ou d'habitude, j'ai du coup plus de mal
à lire un truc du style reinterpret_cast<int*>(arg) que ça: (int*)arg.
En gros, pr moi l'idée est bonne, mais ça en fait trop peu, et ce serait
surtout intéressant si l'héritage multiple, le vrai (pas celui qu'avec une
classe de base et plein d'interface: ça c'était facile à gérer) marchait...
Si le c++ offrait un peu plus de possibilité pour le rendre un peu moins
statique (style: rtti améliorés permettant d'énumérer les membres d'une
instance de classe, ..., etc...) Pr moi ça fait parti des quelques pans du
C++ qui malheureusement ne sont pas terminés et sont à priori pas prêt de
l'être vu l'évolution de la norme, à quand le D++ ? :-)
Dans le même ordre d'idée j'ai banni l'utilisation des infos rtti de mes
sources, après avoir vu les faibles possibilités que ça offrait et que ça ne
me permettait pas de me passer ni même de simplifier mon propre système
d'info dynamique (class factory, publication de c++ pr du scripting, ...).
La question pr moi finalement ce serait plutôt: Quels avantages apportent
réellement les nouveaux cast, les infos rtti par rapport aux cast C, aux
"rtti à la mimine" dans le cadre des possibilités que nous offre aujourd'hui
nos machines, de l'évolution du dev en général, vu de ma lorgnette, où l'on
a de plus en plus besoin à la fois de dynamicité et de staticité (ex:
scripting embarqué ds une appli de gestion, avec pq pas un système de
plugins bdd, support d'images, modules métiers fournis par des boites
externes, ...) ?.
Voili, allez au boulot feignant ! (prenez le pas mal: je parle pr moi :-))
Pas moi. On peut objectivement trouver des avantages aux machin_cast, comme par exemple le fait de mieux discerner de quel type de cast il s'agit, le fait de permettre des choses que les anciens casts ne permettent pas d'écrire, le fait d'être plus facilement grepables, soit par un outil informatique, soit quand on parcours le code.
Peux-tu expliquer quels avantages tu vois aux anciens casts ?
J'aurai pt etre même du commencer par ça ;-), déjà je dois avouer une chose, j'ai commencé par le C, et je n'ai passé que qq petits jours à essayer les ..._cast(:-)) mais j'ai désormais une bonne experience en C++, et mon boulot consiste essentiellement ds le dev de lib c++, et outils de dev divers. Je m'explique pr les casts:
Dans un contexte de dev où les exceptions c++ sont utilisées systématiquement en tant que système de gestion d'erreur global (erreurs systèmes aussi bien qu'erreurs utilisateurs, la moindre fct peut renvoyer une exception ou presque y compris les ctor d'objets, ...), où le multi threading est lui aussi omniprésent, où les composants utilisés par l'appli peuvent être déchargé, mis à jour à chaud, ... en gros où quasi rien n'est linéaire, où la durée de vie des objets manipulés n'est garantissable qu'a l'aide entre autre d'un système de ref count, où tout ou presque est modulaire, ... pr moi le rève :-): 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...;-) ) . En ce qui concerne la lisibilité, ayant une longue experience des languages type syntaxe C, j'aime pas trop les languages trop littéraux (type vb, cobol, pascal...), question de goût ou d'habitude, j'ai du coup plus de mal à lire un truc du style reinterpret_cast<int*>(arg) que ça: (int*)arg.
En gros, pr moi l'idée est bonne, mais ça en fait trop peu, et ce serait surtout intéressant si l'héritage multiple, le vrai (pas celui qu'avec une classe de base et plein d'interface: ça c'était facile à gérer) marchait... Si le c++ offrait un peu plus de possibilité pour le rendre un peu moins statique (style: rtti améliorés permettant d'énumérer les membres d'une instance de classe, ..., etc...) Pr moi ça fait parti des quelques pans du C++ qui malheureusement ne sont pas terminés et sont à priori pas prêt de l'être vu l'évolution de la norme, à quand le D++ ? :-)
Dans le même ordre d'idée j'ai banni l'utilisation des infos rtti de mes sources, après avoir vu les faibles possibilités que ça offrait et que ça ne me permettait pas de me passer ni même de simplifier mon propre système d'info dynamique (class factory, publication de c++ pr du scripting, ...).
La question pr moi finalement ce serait plutôt: Quels avantages apportent réellement les nouveaux cast, les infos rtti par rapport aux cast C, aux "rtti à la mimine" dans le cadre des possibilités que nous offre aujourd'hui nos machines, de l'évolution du dev en général, vu de ma lorgnette, où l'on a de plus en plus besoin à la fois de dynamicité et de staticité (ex: scripting embarqué ds une appli de gestion, avec pq pas un système de plugins bdd, support d'images, modules métiers fournis par des boites externes, ...) ?.
Voili, allez au boulot feignant ! (prenez le pas mal: je parle pr moi :-))