<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 29, 2011, at 3:16 AM, Larry Evans wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On 01/26/11 15:45, Douglas Gregor wrote:<br><blockquote type="cite">Clang has recently gotten much-improved support for the upcoming<br></blockquote><blockquote type="cite">C++0x standard. In particular, top-of-tree Clang now supports a<br></blockquote><blockquote type="cite">number of C++0x features:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">   </span>- Rvalue references (including rvalue references for *this)<br></blockquote><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">    </span>- Variadic templates<br></blockquote><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">   </span>- Inline namespaces<br></blockquote><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">    </span>- Late-specified return types<br></blockquote><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">  </span>- Decltype<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">You can turn on C++0x support with the -std=gnu++0x (or, if you want<br></blockquote><blockquote type="cite">to be more pedantic, -std=c++0x).<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Give it a spin, write some tests, try it out with libc++, and tell<br></blockquote><blockquote type="cite">us how it went!<br></blockquote>[snip]<br>/home/evansl/prog_dev/boost-svn/ro/trunk/boost/config/no_tr1/utility.hpp:21:<br>In file included from /usr/include/c++/4.4/utility:62:<br>In file included from /usr/include/c++/4.4/bits/stl_pair.h:60:<br>In file included from /usr/include/c++/4.4/bits/move.h:38:<br>In file included from /usr/include/c++/4.4/type_traits:50:<br>/usr/include/c++/4.4/tr1_impl/type_traits:233:29: error: type qualifier<br>is not allowed on this function<br>    struct is_function<_Res(_ArgTypes...) const><br>                            ^<br>/usr/include/c++/4.4/tr1_impl/type_traits:233:12: error: redefinition of<br>'is_function<type-parameter-0-0<br>      (type-parameter-0-1...)>'<br>    struct is_function<_Res(_ArgTypes...) const><br>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>/usr/include/c++/4.4/tr1_impl/type_traits:227:12: note: previous<br>definition is here<br>    struct is_function<_Res(_ArgTypes...)><br>           ^<br>/usr/include/c++/4.4/tr1_impl/type_traits:236:29: error: type qualifier<br>is not allowed on this function<br>    struct is_function<_Res(_ArgTypes......) const><br>                            ^<br>/usr/include/c++/4.4/tr1_impl/type_traits:236:12: error: redefinition of<br>'is_function<type-parameter-0-0<br>      (type-parameter-0-1..., ...)>'<br>    struct is_function<_Res(_ArgTypes......) const><br>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>/usr/include/c++/4.4/tr1_impl/type_traits:230:12: note: previous<br>definition is here<br>    struct is_function<_Res(_ArgTypes......)><br>           ^<br>/usr/include/c++/4.4/tr1_impl/type_traits:239:29: error: type qualifier<br>is not allowed on this function<br>    struct is_function<_Res(_ArgTypes...) volatile><br></div></blockquote><br></div><div>libstdc++ is using a non-standard g++ extension here that Clang doesn't (yet) support. That g++ extension is the subject of core issue 547:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">   <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#547">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#547</a></span></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre"> </span>- Doug</div><br></body></html>