================
@@ -16,7 +16,8 @@
 #define _NULLPTR_T
 
 #ifdef __cplusplus
-#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
+#if __cplusplus >= 201103L ||                                                  
\
+    (defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED))
----------------
philnik777 wrote:

> > We claim to be a C++11 implementation, not a C++03 implementation.
> 
> That's not how I understood the RFC, unless I missed something. I understood 
> it as libc++ is a C++03 and later implementation but that we're not making 
> fixes to C++03 unless there's some major security vulnerability or other 
> extenuating circumstance.

This has nothing to do with the RFC. libc++ has always provided a lot of 
"extensions" in C++03. From the very beginning we've had C++11 features 
implemented in C++03. I actually think it probably was a huge mistake, but we 
can't change it 15 years later. This is one of the main reasons we want to 
split the headers, so we can leave the cruft behind and not have massive 
workarounds for all the stuff we provide in 03.

> > Well, it does with libc++.
> 
> It's a non-conforming extension.

If you look at it as a C++03 implementation. If you look at it as a C++11 
implementation that works with C++03 compiler it's not.


https://github.com/llvm/llvm-project/pull/154599
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to