https://gcc.gnu.org/g:8be7d5deb0679dbd3c4e7e4717ec65021a97faaf

commit r16-8415-g8be7d5deb0679dbd3c4e7e4717ec65021a97faaf
Author: Jonathan Wakely <[email protected]>
Date:   Wed Apr 1 15:16:38 2026 +0100

    libstdc++: Use __cpp_lib_map_try_emplace feature test macro
    
    Check the relevant macro for insert_or_assign members, instead of just
    checking the value of __cplusplus.
    
    Also use Doxygen grouping to make docs for try_emplace apply to all
    three overloads.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/stl_map.h (map::try_emplace): Move #endif and use
            Doxygen's @{ to document all three overloads.
            (map::insert_or_assign): Use relevant feature test macro.
    
    Reviewed-by: Tomasz KamiƄski <[email protected]>

Diff:
---
 libstdc++-v3/include/bits/stl_map.h | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/libstdc++-v3/include/bits/stl_map.h 
b/libstdc++-v3/include/bits/stl_map.h
index 72a7392dbb77..1e119a95b5cd 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -870,6 +870,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
        *  to the first is returned.
        *
        *  Insertion requires logarithmic time (if the hint is not taken).
+       *
+       *  @{
        */
       template <typename... _Args>
        iterator
@@ -906,7 +908,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
            __i = iterator(__true_hint.first);
          return __i;
        }
-#endif
 
 #ifdef __glibcxx_associative_heterogeneous_insertion  // C++26
       template <__heterogeneous_tree_key<map> _Kt, typename ..._Args>
@@ -927,6 +928,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
          return __i;
        }
 #endif
+      /// @}
+#endif // __glibcxx_map_try_emplace
 
       /**
        *  @brief Attempts to insert a std::pair into the %map.
@@ -1074,7 +1077,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
        insert(_InputIterator __first, _InputIterator __last)
        { _M_t._M_insert_range_unique(__first, __last); }
 
-#if __cplusplus > 201402L
+#ifdef __glibcxx_map_try_emplace // >= C++17 && HOSTED
       /**
        *  @brief Attempts to insert or assign a std::pair into the %map.
        *  @param __k    Key to use for finding a possibly existing pair in
@@ -1150,9 +1153,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
        }
 #endif
       ///@}
-#endif
 
-#if __cplusplus > 201402L
       ///@{
       /**
        *  @brief Attempts to insert or assign a std::pair into the %map.
@@ -1238,7 +1239,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
        }
 #endif
       ///@}
-#endif
+#endif // __glibcxx_map_try_emplace
 
 #if __cplusplus >= 201103L
       // _GLIBCXX_RESOLVE_LIB_DEFECTS

Reply via email to