On Jan 23, 2011, at 4:15 AM, Chandler Carruth wrote:

> Hello,
> 
> I was trying to see how Clang in -std=c++98 would handle libc++ and ran into 
> some trouble. GCC enables a substantial amount of C++ functionality when 
> inside of system headers in addition to suppressing warnings. Clang however 
> only suppresses warnings and relies on 0x features to be enabled with 
> ExtWarns in 98 mode in order for them to work in system headers. The end 
> result is that while Clang is fine with the variadic templates, it barfs on 
> several other constructs. One is the use of 'vector<vector<int>>'-style 
> closing angle brackets. I've attached a patch, constructed with our fixit 
> rewriter, that makes all of those contain the mandated space. Chris indicated 
> on IRC that this should likely just be avoided in libc++.

This patch included changes to test/lit.cfg which had conflicts.  I've 
committed the changes to __tuple and tuple, thanks.

-Howard

> 
> The other major blocker is that R-value references aren't an extension but 
> are used heavily in libc++. Should these also become an extension, or should 
> we add more robust survival tactics in system headers much as GCC does?
> 
> One more small blocker was the use of default template parameter arguments in 
> function templates. Same question as to how best to proceed.
> 
> Thanks,
> -Chandler
> <fix_close_angle_angle.patch>


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to