Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Type de retour void et return f()

3 réponses
Avatar
drkm
Bonjour

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

3 réponses

Avatar
Fabien LE LEZ
On Thu, 29 Jul 2004 14:48:36 +0200, drkm :

void f() {
}
void g() {
return f() ;
}


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.


--
;-)

Avatar
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

Avatar
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