[cfe-dev] [libcxx] C++03 support level?

Asiri Rathnayake via cfe-dev cfe-dev at lists.llvm.org
Thu Aug 25 07:47:13 PDT 2016


Hi All,

I've got a couple of questions:

It is my understanding that libc++ is fully C++03 compatible. Or is this
not the case? (I couldn't find this fact explicitly documented on
libcxx.llvm.org).

Following the split of <cfoo> headers into <cfoo> and <foo.h> headers in
[1], any compilation including <foo.h> will end up picking the libc++
header instead of directly including the underlying C library's <foo.h>
header. This can be a bit problematic for -std=c++03 in some cases. For
example, <math.h> header provided by libc++ makes references C99 math
functions unconditionally, which is OK for -std=c++11 and beyond, but not
OK for -std=c++03. If the underlying C-library does not provide those C99
functions (as expected for -std=C++03), this usage will result in a
compiler error.

Am I missing something here? We have a C library which is quite strict
about standards conformance (e.g. it won't make C99 math functions visible
if being used under -std=c++03). Do we need to be more lenient with libc++?
Or is this a regression from D12747?

If there is a common senses on this, I'd like to at least document in on
libcxx.llvm.org.

Thanks.

/ Asiri

[1] https://reviews.llvm.org/D12747
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160825/a40b030b/attachment.html>


More information about the cfe-dev mailing list