Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote: > On 3/13/12 6:02 AM, Peter Alexander wrote: >> On Monday, 12 March 2012 at 09:40:15 UTC, Walter Bright wrote: >>> On 3/12/2012 1:08 AM, Martin Nowak wrote: >>>> What's wrong with auto-inference. Inferred attributes are only >>>> strengthening >>>> guarantees. >>> >>> Auto-inference is currently done for lambdas and template functions - >>> why? - because the function's implementation is guaranteed to be >>> visible to the compiler. For other functions, not so, and so the >>> attributes must be part of the function signature. >> >> Dumb question: >> >> Why not auto-infer when the function body is available, and put the >> inferred attributes into the automatically generated .di file? >> >> Apologies if I've missed something completely obvious. > > Because in the general case functions call one another so there's no way > to figure which to look at first. > > Andrei
That's no difference from template functions calling each others right? int a()(int x) { return x==0?1:b(x-1); } int b()(int x) { return x==0?1:a(x-1); }