<div dir="ltr">Hi All,<div><br></div><div>I've got a couple of questions:<div><br></div><div>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 <a href="http://libcxx.llvm.org">libcxx.llvm.org</a>).</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>If there is a common senses on this, I'd like to at least document in on <a href="http://libcxx.llvm.org">libcxx.llvm.org</a>.</div><div><br></div><div>Thanks.</div><div><br></div><div>/ Asiri</div><div><br></div><div>[1] <a href="https://reviews.llvm.org/D12747">https://reviews.llvm.org/D12747</a></div></div></div>