[cfe-dev] New C++0x feature support in Clang
Douglas Gregor
dgregor at apple.com
Mon Jan 31 07:21:04 PST 2011
On Jan 29, 2011, at 3:16 AM, Larry Evans wrote:
> On 01/26/11 15:45, Douglas Gregor wrote:
>> Clang has recently gotten much-improved support for the upcoming
>> C++0x standard. In particular, top-of-tree Clang now supports a
>> number of C++0x features:
>>
>> - Rvalue references (including rvalue references for *this)
>> - Variadic templates
>> - Inline namespaces
>> - Late-specified return types
>> - Decltype
>>
>> You can turn on C++0x support with the -std=gnu++0x (or, if you want
>> to be more pedantic, -std=c++0x).
>>
>> Give it a spin, write some tests, try it out with libc++, and tell
>> us how it went!
> [snip]
> /home/evansl/prog_dev/boost-svn/ro/trunk/boost/config/no_tr1/utility.hpp:21:
> In file included from /usr/include/c++/4.4/utility:62:
> In file included from /usr/include/c++/4.4/bits/stl_pair.h:60:
> In file included from /usr/include/c++/4.4/bits/move.h:38:
> In file included from /usr/include/c++/4.4/type_traits:50:
> /usr/include/c++/4.4/tr1_impl/type_traits:233:29: error: type qualifier
> is not allowed on this function
> struct is_function<_Res(_ArgTypes...) const>
> ^
> /usr/include/c++/4.4/tr1_impl/type_traits:233:12: error: redefinition of
> 'is_function<type-parameter-0-0
> (type-parameter-0-1...)>'
> struct is_function<_Res(_ArgTypes...) const>
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/4.4/tr1_impl/type_traits:227:12: note: previous
> definition is here
> struct is_function<_Res(_ArgTypes...)>
> ^
> /usr/include/c++/4.4/tr1_impl/type_traits:236:29: error: type qualifier
> is not allowed on this function
> struct is_function<_Res(_ArgTypes......) const>
> ^
> /usr/include/c++/4.4/tr1_impl/type_traits:236:12: error: redefinition of
> 'is_function<type-parameter-0-0
> (type-parameter-0-1..., ...)>'
> struct is_function<_Res(_ArgTypes......) const>
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/c++/4.4/tr1_impl/type_traits:230:12: note: previous
> definition is here
> struct is_function<_Res(_ArgTypes......)>
> ^
> /usr/include/c++/4.4/tr1_impl/type_traits:239:29: error: type qualifier
> is not allowed on this function
> struct is_function<_Res(_ArgTypes...) volatile>
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:
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#547
- Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110131/7bfcd677/attachment.html>
More information about the cfe-dev
mailing list