"structure constants" C++
Bjarne Stroustrup
bs at alice.UucP
Sat Sep 6 11:35:33 AEST 1986
Karl W. Z. Heuer writes:
> BMS-AT!stuart writes:
> >I would like to see "structure constants" which would allow assignment to
> >aggregate types.
> > complex z;
> > z = { a+1, exp(b) };
> > foo( (complex) { a, b } );
>
> The problem, as your last example points out, is that the notation "{...}"
> doesn't distinguish between different structure types. I suppose the cast
> notation is workable, but kinda ugly.
Or in C++:
#include <complex.h>
void foo(complex);
void f() {
double a,b;
complex z;
z = complex(a+1,exp(b));
foo( complex(a,b) );
}
> >Of course any of these could be coded by assigning each member in turn.
>
> No, the last example requires assigning each member to a temporary, and then
> passing that temporary as an argument.
However, a clever compiler might use the calling stack as the temporary, but that
is tricky (C++ doesn't attempt that feat).
More information about the Comp.lang.c
mailing list