<div dir="ltr">Can you tell us what are you trying to do exactly? I'm confused because you asked about modifying ast and now you're talking about 'new' source and I don't quite get it.<div><br></div><div>

I know very little about this but I know that you can't mutate the original AST. TreeTransfrom should allow you to generate a new modified AST while preserving invariants. The way I understand this simply removing all default template parameters would break the AST in all the places where you're instantiating the template with default arguments.</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 11, 2014 at 3:34 PM, Manasij Mukherjee <span dir="ltr"><<a href="mailto:manasij7479@gmail.com" target="_blank">manasij7479@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Well, I already have a 'new' source.<br>So, the same could be achieved by making clang forget about the old declaration.<br>

Can I do that?<br><br>If clang already knows about:<br>

template<typename T=int> class Foo;<br><br>and I have a new source that is about to get parsed:<br><br>template<typename T=int> class Foo {</div><div class="gmail_extra">  //implementation</div><div class="gmail_extra">



}<br><br>Will it be possible to just 'erase' the old one?<span class="HOEnZb"><font color="#888888"><br><br>Manasij Mukherjee</font></span></div></div>
</blockquote></div><br></div>