[cfe-dev] Libcxx marco using question

Howard Hinnant hhinnant at apple.com
Thu Sep 9 07:00:22 PDT 2010


On Sep 9, 2010, at 9:41 AM, Howard Hinnant wrote:

> On Sep 8, 2010, at 9:34 PM, 罗勇刚(Yonggang Luo) wrote:
> 
>> #if defined(__clang__) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 3)
>> in file http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits
>> if this macro is really correct?
>> if __GNUC__ is 5 and __GNUC_MINOR__ is 2, it's seems this macro won't be passed.
>> 
>> So the marco should be
>> #if defined(__clang__) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) ||
>> (__GNUC__ >=5)
>> 
>> And also there is so much same macros define,
>> so we may using
>> 
>> #if defined(__clang__) || (__GNUC__ >= 4 && __GNUC_MINOR__ >= 3)
>> #define LIBCXX_SUPPORT_TYPE_TRAITS
>> #endif
>> 
>> 
>> then we using
>> #ifdef LIBCXX_SUPPORT_TYPE_TRAITS
>> 
>> do something
>> #else
>> do something else
>> #endif
> 
> This is a good suggestion, thanks.  And thanks for the subsequent patches.  I had been testing against g++-4.4 only in -std=c++0x mode.  So I think I'll mix __GXX_EXPERIMENTAL_CXX0X__ into your good suggestion.

Nevermind about that __GXX_EXPERIMENTAL_CXX0X__ bit.  The coffee is just now beginning to take effect... ;-)

Checked in.

Thanks,
Howard





More information about the cfe-dev mailing list