rudell@cad.UUCP (Richard Rudell) (03/10/86)
Consider the following c++ program: #include <stream.h> #include <complex.h> main() { complex a = complex(1.0, 1.0); complex b = complex(1.0, 1.0); complex c = complex(1.0, 1.0); complex d = complex(1.0, 1.0); complex e = (a + b) + (c + d); cout << e << "\n"; } The '+' overload for type complex is: friend complex operator+(complex, complex); . . . inline complex operator+(complex a1, complex a2) { return complex(a1.re+a2.re, a1.im+a2.im); } By examining the output of cfront for the above program, I find that only 1 of the three '+' operators is actually expanded inline. A dummy function is created which performs the addition operation, and then this function is called twice to handle the final two additions. My questions are: Why isn't the entire expression placed "inline" ? and: Is this a temporary limitation, or a necessary (and hence permanent) limitation of c++ ? Thanks in advance, Richard Rudell UC Berkeley ... ucbvax!cad!rudell