Sent from my iPhone
> On Nov 8, 2014, at 1:21 AM, Abramo Bagnara <[email protected]> wrote: > > > template<typename T> void f2(T a, T b = T()) { } > > void m() { > f2(10); > f2(10); > f2(10); > f2(10); > } > > Checking the AST generated for the source above I've seen that the > default argument expression is not instantiated in specialization of > function f2, but instead such transformation is done (and redone) in the > calls to f2. > > In this way: > > - we have dependent expr in the declaration of fully instantiated > functions (that is unexpected, at least for me) > > - we have multiple copies of the same expression (one for each call) > > Is this deliberate? The point of instantiation is at the call site where the default argument is needed, so this is correct. - Doug > -- > Abramo Bagnara > > BUGSENG srl - http://bugseng.com > mailto:[email protected] _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
