libstdc++: Add nodiscard to polymorphic_allocator members (LWG 3304)
authorJonathan Wakely <jwakely@redhat.com>
Wed, 19 Feb 2020 12:04:53 +0000 (12:04 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Wed, 19 Feb 2020 12:46:57 +0000 (12:46 +0000)
* include/std/memory_resource (polymorphic_allocator::allocate_bytes)
(polymorphic_allocator::allocate_object)
(polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/memory_resource

index 045f0ba..eb83c63 100644 (file)
@@ -1,5 +1,9 @@
 2020-02-19  Jonathan Wakely  <jwakely@redhat.com>
 
+       * include/std/memory_resource (polymorphic_allocator::allocate_bytes)
+       (polymorphic_allocator::allocate_object)
+       (polymorphic_allocator::new_object): Add nodiscard attribute (LWG3304).
+
        LWG 3379. "safe" in several library names is misleading
        * include/bits/range_access.h (enable_safe_range): Rename to
        enable_borrowed_range.
index 70c56d1..73f77bd 100644 (file)
@@ -178,7 +178,7 @@ namespace pmr
       { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); }
 
 #if __cplusplus > 201703L
-      void*
+      [[nodiscard]] void*
       allocate_bytes(size_t __nbytes,
                     size_t __alignment = alignof(max_align_t))
       { return _M_resource->allocate(__nbytes, __alignment); }
@@ -189,7 +189,7 @@ namespace pmr
       { _M_resource->deallocate(__p, __nbytes, __alignment); }
 
       template<typename _Up>
-       _Up*
+       [[nodiscard]] _Up*
        allocate_object(size_t __n = 1)
        {
          if ((__detail::__int_limits<size_t>::max() / sizeof(_Up)) < __n)
@@ -204,7 +204,7 @@ namespace pmr
        { deallocate_bytes(__p, __n * sizeof(_Up), alignof(_Up)); }
 
       template<typename _Up, typename... _CtorArgs>
-       _Up*
+       [[nodiscard]] _Up*
        new_object(_CtorArgs&&... __ctor_args)
        {
          _Up* __p = allocate_object<_Up>();