简体   繁体   中英

why doesn't clang++ compile the following code?

I have the following code:

#include <type_traits>

int main()
{
}

g++ file.cc -std=c++0x

works just fine.

However, I need to use clang++ for some reason.

When I try

clang++ file.cc -std=c++0x

I get a bunch of errors:

In file included from file.cc:1:
In file included from /usr/include/c++/4.4.4/type_traits:50:
/usr/include/c++/4.4.4/tr1_impl/type_traits:230:41: error: expected ')'
    struct is_function<_Res(_ArgTypes......)>
                                        ^
/usr/include/c++/4.4.4/tr1_impl/type_traits:230:28: note: to match this '('
    struct is_function<_Res(_ArgTypes......)>
                           ^
/usr/include/c++/4.4.4/tr1_impl/type_traits:230:12: error: redefinition of 'is_function<type-parameter-0-0 (type-parameter-0-1, ...)>'
    struct is_function<_Res(_ArgTypes......)>
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/4.4.4/tr1_impl/type_traits:227:12: note: previous definition is here
    struct is_function<_Res(_ArgTypes...)>
           ^
/usr/include/c++/4.4.4/tr1_impl/type_traits:233:29: error: type qualifier is not allowed on this function
    struct is_function<_Res(_ArgTypes...) const>
....

clang++ --version gives:

clang version 2.8 (branches/release_28)
Target: x86_64-redhat-linux-gnu
Thread model: posix

Any ideas how to fix that? (-std=c++11 doesn't work, not recognized.)

Clang 2.8不支持C ++ 11功能,您需要升级编译器才能使用它们。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM