[libcxx-commits] [libcxx] [libc++][NFC] Replace a few "namespace std" with the correct macro (PR #140510)

via libcxx-commits libcxx-commits at lists.llvm.org
Fri May 23 13:56:54 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)

<details>
<summary>Changes</summary>

We've added a new macro for the unversioned `namespace std` cases in #<!-- -->133009, but it seems we've missed a few places. This fixes the places I just found.


---
Full diff: https://github.com/llvm/llvm-project/pull/140510.diff


4 Files Affected:

- (modified) libcxx/include/initializer_list (+4-5) 
- (modified) libcxx/include/optional (+4-3) 
- (modified) libcxx/include/stdexcept (+4-3) 
- (modified) libcxx/include/typeinfo (+4-3) 


``````````diff
diff --git a/libcxx/include/initializer_list b/libcxx/include/initializer_list
index 00e0d4ea4a2df..b66b734eb57f9 100644
--- a/libcxx/include/initializer_list
+++ b/libcxx/include/initializer_list
@@ -53,11 +53,10 @@ template<class E> const E* end(initializer_list<E> il) noexcept; // constexpr in
 #    pragma GCC system_header
 #  endif
 
-namespace std // purposefully not versioned
-{
-
 #  ifndef _LIBCPP_CXX03_LANG
 
+_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
+
 template <class _Ep>
 class _LIBCPP_NO_SPECIALIZATIONS initializer_list {
   const _Ep* __begin_;
@@ -95,9 +94,9 @@ inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 const _Ep* end(initia
   return __il.end();
 }
 
-#  endif // !defined(_LIBCPP_CXX03_LANG)
+_LIBCPP_END_UNVERSIONED_NAMESPACE_STD
 
-} // namespace std
+#  endif // !defined(_LIBCPP_CXX03_LANG)
 
 #  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #    include <cstddef>
diff --git a/libcxx/include/optional b/libcxx/include/optional
index 2153efb2ab899..b60ddb91ce5d6 100644
--- a/libcxx/include/optional
+++ b/libcxx/include/optional
@@ -244,8 +244,8 @@ namespace std {
 _LIBCPP_PUSH_MACROS
 #  include <__undef_macros>
 
-namespace std // purposefully not using versioning namespace
-{
+_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
+_LIBCPP_BEGIN_EXPLICIT_ABI_ANNOTATIONS
 
 class _LIBCPP_EXPORTED_FROM_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access : public exception {
 public:
@@ -257,7 +257,8 @@ public:
   const char* what() const _NOEXCEPT override;
 };
 
-} // namespace std
+_LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS
+_LIBCPP_END_UNVERSIONED_NAMESPACE_STD
 
 #  if _LIBCPP_STD_VER >= 17
 
diff --git a/libcxx/include/stdexcept b/libcxx/include/stdexcept
index 610b409132543..a2116c133ade3 100644
--- a/libcxx/include/stdexcept
+++ b/libcxx/include/stdexcept
@@ -73,8 +73,8 @@ public:
 
 _LIBCPP_END_NAMESPACE_STD
 
-namespace std // purposefully not using versioning namespace
-{
+_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
+_LIBCPP_BEGIN_EXPLICIT_ABI_ANNOTATIONS
 
 class _LIBCPP_EXPORTED_FROM_ABI logic_error : public exception {
 #  ifndef _LIBCPP_ABI_VCRUNTIME
@@ -207,7 +207,8 @@ public:
 #  endif
 };
 
-} // namespace std
+_LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS
+_LIBCPP_END_UNVERSIONED_NAMESPACE_STD
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
diff --git a/libcxx/include/typeinfo b/libcxx/include/typeinfo
index 24aaabf0a87df..1f056d2e66bde 100644
--- a/libcxx/include/typeinfo
+++ b/libcxx/include/typeinfo
@@ -76,8 +76,8 @@ public:
 #    include <vcruntime_typeinfo.h>
 #  else
 
-namespace std // purposefully not using versioning namespace
-{
+_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD
+_LIBCPP_BEGIN_EXPLICIT_ABI_ANNOTATIONS
 
 #    if defined(_LIBCPP_ABI_MICROSOFT)
 
@@ -348,7 +348,8 @@ public:
   const char* what() const _NOEXCEPT override;
 };
 
-} // namespace std
+_LIBCPP_END_EXPLICIT_ABI_ANNOTATIONS
+_LIBCPP_END_UNVERSIONED_NAMESPACE_STD
 
 #  endif // defined(_LIBCPP_ABI_VCRUNTIME)
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/140510


More information about the libcxx-commits mailing list