[libc++][queue] Applied [[nodiscard]] (#169469)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
This commit is contained in:
Hristo Hristov 2025-11-27 03:44:28 +02:00 committed by GitHub
parent ceba82f862
commit b028dacc60
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 14 deletions

View File

@ -376,12 +376,12 @@ public:
# endif // _LIBCPP_CXX03_LANG
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool empty() const { return c.empty(); }
_LIBCPP_HIDE_FROM_ABI size_type size() const { return c.size(); }
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI size_type size() const { return c.size(); }
_LIBCPP_HIDE_FROM_ABI reference front() { return c.front(); }
_LIBCPP_HIDE_FROM_ABI const_reference front() const { return c.front(); }
_LIBCPP_HIDE_FROM_ABI reference back() { return c.back(); }
_LIBCPP_HIDE_FROM_ABI const_reference back() const { return c.back(); }
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI reference front() { return c.front(); }
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_reference front() const { return c.front(); }
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI reference back() { return c.back(); }
[[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI const_reference back() const { return c.back(); }
_LIBCPP_HIDE_FROM_ABI void push(const value_type& __v) { c.push_back(__v); }
# ifndef _LIBCPP_CXX03_LANG
@ -664,8 +664,10 @@ public:
# endif
[[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool empty() const { return c.empty(); }
_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI size_type size() const { return c.size(); }
_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_reference top() const { return c.front(); }
[[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI size_type size() const { return c.size(); }
[[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_reference top() const {
return c.front();
}
_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void push(const value_type& __v);
# ifndef _LIBCPP_CXX03_LANG

View File

@ -12,12 +12,24 @@
#include <queue>
void test_queue() {
std::queue<int> queue;
queue.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
}
void test() {
{
std::queue<int> q;
const std::queue<int> cq{};
void test_priority_queue() {
std::priority_queue<int> priority_queue;
priority_queue.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
q.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
q.size(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
q.front(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
cq.front(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
q.back(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
cq.back(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
}
{
std::priority_queue<int> pq;
pq.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
pq.size(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
pq.top(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
}
}