Je sais qu'en C++, *en théorie*, les objets temporaires sont constants.
Mais si ce n'est pas le cas pour mon compilateur, rien ne m'empêche de
définir un opérateur qui prend en argument une référence non constante.
Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
Merci de votre aide!
ded'
--
I would crush my own eyeballs with a crimper before I volunteered to
work on a project with C++. -- Adrian Hosey
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Samuel Krempp
le Saturday 01 May 2004 17:55, écrivit :
Je sais qu'en C++, *en théorie*, les objets temporaires sont constants. Mais si ce n'est pas le cas pour mon compilateur, rien ne m'empêche de définir un opérateur qui prend en argument une référence non constante.
Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
je ne suis pas sûr qu'on puisse vraiment répondre. Tu dis que tu as un compilateur qui ne se comporte pas conformément a la norme, et que tu veux définir un opérateur prenant une référence non const. c'est hyper vague..
M'enfin, avec un compilo buggé tout peut engendrer des bugs ou des effets pervers, alors bon, ma réponse est : oui.
;p -- Sam
le Saturday 01 May 2004 17:55, ded@laposte.nospam.net écrivit :
Je sais qu'en C++, *en théorie*, les objets temporaires sont constants.
Mais si ce n'est pas le cas pour mon compilateur, rien ne m'empêche de
définir un opérateur qui prend en argument une référence non constante.
Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
je ne suis pas sûr qu'on puisse vraiment répondre.
Tu dis que tu as un compilateur qui ne se comporte pas conformément a la
norme, et que tu veux définir un opérateur prenant une référence non const.
c'est hyper vague..
M'enfin, avec un compilo buggé tout peut engendrer des bugs ou des effets
pervers, alors bon, ma réponse est : oui.
Je sais qu'en C++, *en théorie*, les objets temporaires sont constants. Mais si ce n'est pas le cas pour mon compilateur, rien ne m'empêche de définir un opérateur qui prend en argument une référence non constante.
Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
je ne suis pas sûr qu'on puisse vraiment répondre. Tu dis que tu as un compilateur qui ne se comporte pas conformément a la norme, et que tu veux définir un opérateur prenant une référence non const. c'est hyper vague..
M'enfin, avec un compilo buggé tout peut engendrer des bugs ou des effets pervers, alors bon, ma réponse est : oui.
;p -- Sam
James Kanze
ded' writes:
|> Je sais qu'en C++, *en théorie*, les objets temporaires sont |> constants.
Pas du tout, voire la discussion récente sur comp.lang.c++.moderated (entre John Potter et moi). Un objet temporaire n'est pas const. En révanche, on ne peut pas s'en servir pour initialiser une référence. (Plus exactement, on ne peut pas se servir d'un rvalue pour initialiser une référence.)
|> Mais si ce n'est pas le cas pour mon compilateur, rien ne |> m'empêche de définir un opérateur qui prend en argument une |> référence non constante.
Rien n'empêche en général de définir un opérateur qui prend une référence non constante. Seulement, tu ne pourrais pas lui passer un temporaire (ou plus exactement, un rvalue).
Dans la pratique, il y a beaucoup de compilateurs qui le permet, pour des raisons historiques.
|> Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
De quel genre ? Tout, mal utilisé, peut engendrer des bugs et des effets pervers. Si Stroustrup a décidé d'interdire l'initialisation d'une référence non-const avec un temporaire, c'était parce que dans l'expérience, c'était assez facile de le mal utilisé.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
ded' <ded@laposte.nospam.net> writes:
|> Je sais qu'en C++, *en théorie*, les objets temporaires sont
|> constants.
Pas du tout, voire la discussion récente sur comp.lang.c++.moderated
(entre John Potter et moi). Un objet temporaire n'est pas const. En
révanche, on ne peut pas s'en servir pour initialiser une
référence. (Plus exactement, on ne peut pas se servir d'un rvalue
pour initialiser une référence.)
|> Mais si ce n'est pas le cas pour mon compilateur, rien ne
|> m'empêche de définir un opérateur qui prend en argument une
|> référence non constante.
Rien n'empêche en général de définir un opérateur qui
prend une référence non constante. Seulement, tu ne pourrais pas
lui passer un temporaire (ou plus exactement, un rvalue).
Dans la pratique, il y a beaucoup de compilateurs qui le permet, pour
des raisons historiques.
|> Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
De quel genre ? Tout, mal utilisé, peut engendrer des bugs et des
effets pervers. Si Stroustrup a décidé d'interdire
l'initialisation d'une référence non-const avec un temporaire,
c'était parce que dans l'expérience, c'était assez facile de le
mal utilisé.
--
James Kanze mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> Je sais qu'en C++, *en théorie*, les objets temporaires sont |> constants.
Pas du tout, voire la discussion récente sur comp.lang.c++.moderated (entre John Potter et moi). Un objet temporaire n'est pas const. En révanche, on ne peut pas s'en servir pour initialiser une référence. (Plus exactement, on ne peut pas se servir d'un rvalue pour initialiser une référence.)
|> Mais si ce n'est pas le cas pour mon compilateur, rien ne |> m'empêche de définir un opérateur qui prend en argument une |> référence non constante.
Rien n'empêche en général de définir un opérateur qui prend une référence non constante. Seulement, tu ne pourrais pas lui passer un temporaire (ou plus exactement, un rvalue).
Dans la pratique, il y a beaucoup de compilateurs qui le permet, pour des raisons historiques.
|> Est-ce que cela peut engendrer des bugs et/ou des effets pervers ?
De quel genre ? Tout, mal utilisé, peut engendrer des bugs et des effets pervers. Si Stroustrup a décidé d'interdire l'initialisation d'une référence non-const avec un temporaire, c'était parce que dans l'expérience, c'était assez facile de le mal utilisé.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93