Sur <URL:http://www.boost.org/doc/html/function.reference.html>, je
viens de voir l'extrait suivant :
A function object f is compatible if for the given set of argument
types Arg1, Arg2, ..., ArgN and a return type ResultType, the
appropriate following function is well-formed:
// if ResultType is not void
ResultType foo(Arg1 arg1, Arg2 arg2, ..., ArgN argN)
{
return f(arg1, arg2, ..., argN);
}
// if ResultType is void
ResultType foo(Arg1 arg1, Arg2 arg2, ..., ArgN argN)
{
f(arg1, arg2, ..., argN);
}
Il me semblait pourtant que l'on pouvait « retourner » quelque chose
dans une fonction dont le type de retour est void, pour autant que ce
quelque chose soit également void. Comme une le résultat d'uneautre
fonction retournant void. Je pense d'ailleurs que c'est le seul cas.
void f() {
}
void g() {
return f() ;
}
Ce qui est justement utile dans ce genre de cas. lorsque l'on a un
paramètre de modèle qui spécifie le type de retour d'une fonction. Le
code ci-dessus passe d'ailleurs sans avertissement sur G++. Mais
j'aimerais être certain de la chose.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Je ne sais pas s'il s'agit d'une nouveauté dans la norme ou d'une extension de certains compilos, mais Borland C++ 5.02 le refuse.
-- ;-)
Christophe de VIENNE
drkm wrote:
void f() { } void g() { return f() ; }
Il y a eu une discussion là-dessus il y a un petit moment. J'ai retrouvé ça : http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
A+
Christophe
drkm wrote:
void f() {
}
void g() {
return f() ;
}
Il y a eu une discussion là-dessus il y a un petit moment. J'ai retrouvé
ça :
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
Il y a eu une discussion là-dessus il y a un petit moment. J'ai retrouvé ça : http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
A+
Christophe
drkm
Christophe de VIENNE writes:
drkm wrote:
void f() { } void g() { return f() ; }
Il y a eu une discussion là-dessus il y a un petit moment. J'ai retrouvé ça : http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
Parfait. Merci pour le lien. C'est bizarre, je trouve, que cela ait été ajouté tardivement à la norme. Même s'il est vrai qu'à l'époque, l'utilisation des modèles n'était pas ce qu'elle est aujourd'hui.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Christophe de VIENNE <cdevienne@alphacent.com> writes:
drkm wrote:
void f() {
}
void g() {
return f() ;
}
Il y a eu une discussion là-dessus il y a un petit moment. J'ai
retrouvé ça :
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
Parfait. Merci pour le lien. C'est bizarre, je trouve, que cela
ait été ajouté tardivement à la norme. Même s'il est vrai qu'à
l'époque, l'utilisation des modèles n'était pas ce qu'elle est
aujourd'hui.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Il y a eu une discussion là-dessus il y a un petit moment. J'ai retrouvé ça : http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&threadm=m3u1iocuf2.fsf%40uniton.integrable-solutions.net&rnum=1&prev=/groups%3Fq%3Dreturn%2Bvoid%2Bgroup:fr.comp.lang.c%252B%252B%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26group%3Dfr.comp.lang.c%252B%252B%26selm%3Dm3u1iocuf2.fsf%
Parfait. Merci pour le lien. C'est bizarre, je trouve, que cela ait été ajouté tardivement à la norme. Même s'il est vrai qu'à l'époque, l'utilisation des modèles n'était pas ce qu'elle est aujourd'hui.
--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html