Does __has_feature(cxx_auto_type) mean that multi-declarator auto
is supported? The following page says nothing about multi-declarator auto:
http://clang.llvm.org/docs/LanguageExtensions.html#cxx_auto_type
I'm asking this question to make a patch for Boost.Config
( http://thread.gmane.org/gmane.comp.lib.boost.devel/224876 ).
Unfortunately, some of the C++11 feature supports in clang 3.0
cannot be recognized by Boost.Config, since its clang support is
a bit too old. And the release of Boost 1.48 beta is very close.
Regards,
Michel
Does __has_feature(cxx_auto_type) mean that multi-declarator auto
is supported? The following page says nothing about multi-declarator auto:
http://clang.llvm.org/docs/LanguageExtensions.html#cxx_auto_type
cxx_auto_type indicates support for both auto and multi-declarator auto (they were implemented at the same time in Clang).
I'm asking this question to make a patch for Boost.Config
( http://thread.gmane.org/gmane.comp.lib.boost.devel/224876 ).
Unfortunately, some of the C++11 feature supports in clang 3.0
cannot be recognized by Boost.Config, since its clang support is
a bit too old. And the release of Boost 1.48 beta is very close.
Are you planning to update Boost's Clang configuration? That would be wonderful.
- Doug
Douglas Gregor wrote:
cxx_auto_type indicates support for both auto and multi-declarator auto (they were implemented at the same time in Clang).
Thanks for answering!
Are you planning to update Boost's Clang configuration? That would be wonderful.
Yep 
But, before completing a patch, I'd like to make some questions
* Does __has_feature(cxx_deleted_functions) mean that *defaulted* function
is supported?
* Does __has_feature(cxx_generalized_initializers) mean that we can safely
write `#include <initializer_list>` even with a C++03 standard library?
* How to query the support of char16_t and char32_t?
* How to query the support of C++11 decltype (N3276)?
Regards,
Michel
Jared Grubb wrote:
* Does __has_feature(cxx_generalized_initializers) mean that we can safely
write `#include <initializer_list>` even with a C++03 standard library?
For this, you could probably use "__has_include(<initializer_list>)" to
really get what you're looking for, no?
Agreed. To check the existence of the header,
"__has_include(<initializer_list>)" should be used. Thanks!
Regards,
Michel
Michel Morin wrote:
* Does __has_feature(cxx_deleted_functions) mean that *defaulted* function
is supported?
I tested some codes and confirmed that __has_feature(cxx_deleted_functions)
does not mean defaulted function is also supported. And there is no querying
macro something like __has_feature(cxx_defaulted_functions).
* Does __has_feature(cxx_generalized_initializers) mean that we can safely
write `#include <initializer_list>` even with a C++03 standard library?
Definitely no, I think, since this querying macro reports
about the "language core" part of initializer_list.
* How to query the support of char16_t and char32_t?
It seems that both of these types are supported on any versions of clang
in a C++11 mode.
So, can we query the support by `#ifdef __GXX_EXPERIMENTAL_CXX0X__`?
Regards,
Michel
Submitted a patch for clang's config to Boost
http://thread.gmane.org/gmane.comp.lib.boost.devel/224876/focus=225175
though I think it's too late to be merged to the release branch (Boost 1.48).
Thanks for your help!
Regards,
Michel