Mogens Hansen <mogens_h@dk-online.dk> writes:
> Intuitivt ville jeg forvente at det er lovligt, også selv hvis returværdien
> blev brugt f.eks. som parameter en til anden funktion.
Det sidste skulle meget gerne være lovligt, det er en gennemgående
konstruktion i al min C og C++ kode. Jeg anbefaler endda andre at
gøre det samme:
<
http://www.dina.kvl.dk/~abraham/rants/opaque-pointer.html>
Spørgsmålet er om "smid væk" er en brug af "den type referencen
refererer til". Jeg kunne forestille mig VC++ gør noget i stil med:
void bar ()
{ Incomplete __compiler_generated_dummy = foo (); }
Evt. som led i en "return value optimization":
void bar ()
{
Incomplete __compiler_generated_dummy; // Generer returværdi på forhånd.
foo (__compiler_generated_dummy); // Giv foo det som særlig par.
(void) __compiler_generated_dummy; // Ignorer returværdien.
}