> Too late. I'm going there... :) Good for you. I was hoping transformations could make it :)
Here's something I was wondering. Say you wanted to write a pow() macro (from a previous example) that would forward to C's pow() unless the exponent was an integer, in which case it would optimize to many *'s. If it was called like so: pow(2.718, 2 * 6 / 3) Then the macro would not recieve 4 as the second argument, rather 2*6/3 in syntax tree form. Would the macro have to do its own constant folding? I hope not. So how could it check whether this thing was an integer? How could it differentiate that from pow(2.718, 2 * 6 / 5) ? Or would any constant folding take place before it was passed to the macro? Luke