rstl: Add [[nodiscard]] to interface functions where applicable

Not using the result of these functions is considered a bug and should
be signified as such by a compiler.
This commit is contained in:
Lioncash 2020-03-25 23:43:18 -04:00
parent f4b3fb947e
commit 477c5770c6
1 changed files with 53 additions and 45 deletions

View File

@ -522,32 +522,36 @@ public:
x0_size = 0; x0_size = 0;
} }
size_t size() const noexcept { return x0_size; } [[nodiscard]] size_t size() const noexcept { return x0_size; }
bool empty() const noexcept { return x0_size == 0; } [[nodiscard]] bool empty() const noexcept { return x0_size == 0; }
constexpr size_t capacity() const noexcept { return N; } [[nodiscard]] constexpr size_t capacity() const noexcept { return N; }
const T* data() const noexcept { return std::addressof(_value(0)); } [[nodiscard]] const T* data() const noexcept { return std::addressof(_value(0)); }
T* data() noexcept { return std::addressof(_value(0)); } [[nodiscard]] T* data() noexcept { return std::addressof(_value(0)); }
T& back() { return _value(x0_size - 1); } [[nodiscard]] T& back() { return _value(x0_size - 1); }
T& front() { return _value(0); } [[nodiscard]] T& front() { return _value(0); }
const T& back() const { return _value(x0_size - 1); } [[nodiscard]] const T& back() const { return _value(x0_size - 1); }
const T& front() const { return _value(0); } [[nodiscard]] const T& front() const { return _value(0); }
const_iterator begin() const noexcept { return const_iterator(std::addressof(_value(0))); } [[nodiscard]] const_iterator begin() const noexcept { return const_iterator(std::addressof(_value(0))); }
const_iterator end() const noexcept { return const_iterator(std::addressof(_value(x0_size))); } [[nodiscard]] const_iterator end() const noexcept { return const_iterator(std::addressof(_value(x0_size))); }
iterator begin() noexcept { return iterator(std::addressof(_value(0))); } [[nodiscard]] iterator begin() noexcept { return iterator(std::addressof(_value(0))); }
iterator end() noexcept { return iterator(std::addressof(_value(x0_size))); } [[nodiscard]] iterator end() noexcept { return iterator(std::addressof(_value(x0_size))); }
const_iterator cbegin() const noexcept { return begin(); } [[nodiscard]] const_iterator cbegin() const noexcept { return begin(); }
const_iterator cend() const noexcept { return end(); } [[nodiscard]] const_iterator cend() const noexcept { return end(); }
const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(std::addressof(_value(x0_size - 1))); } [[nodiscard]] const_reverse_iterator rbegin() const noexcept {
const_reverse_iterator rend() const noexcept { return const_reverse_iterator(std::addressof(_value(-1))); } return const_reverse_iterator(std::addressof(_value(x0_size - 1)));
reverse_iterator rbegin() noexcept { return reverse_iterator(std::addressof(_value(x0_size - 1))); } }
reverse_iterator rend() noexcept { return reverse_iterator(std::addressof(_value(-1))); } [[nodiscard]] const_reverse_iterator rend() const noexcept {
const_reverse_iterator crbegin() const noexcept { return rbegin(); } return const_reverse_iterator(std::addressof(_value(-1)));
const_reverse_iterator crend() const noexcept { return rend(); } }
[[nodiscard]] reverse_iterator rbegin() noexcept { return reverse_iterator(std::addressof(_value(x0_size - 1))); }
[[nodiscard]] reverse_iterator rend() noexcept { return reverse_iterator(std::addressof(_value(-1))); }
[[nodiscard]] const_reverse_iterator crbegin() const noexcept { return rbegin(); }
[[nodiscard]] const_reverse_iterator crend() const noexcept { return rend(); }
T& operator[](size_t idx) { [[nodiscard]] T& operator[](size_t idx) {
#ifndef NDEBUG #ifndef NDEBUG
if (idx >= x0_size) { if (idx >= x0_size) {
Log.report(logvisor::Fatal, fmt("out of bounds access on reserved_vector.")); Log.report(logvisor::Fatal, fmt("out of bounds access on reserved_vector."));
@ -555,7 +559,7 @@ public:
#endif #endif
return _value(idx); return _value(idx);
} }
const T& operator[](size_t idx) const { [[nodiscard]] const T& operator[](size_t idx) const {
#ifndef NDEBUG #ifndef NDEBUG
if (idx >= x0_size) { if (idx >= x0_size) {
Log.report(logvisor::Fatal, fmt("out of bounds access on reserved_vector.")); Log.report(logvisor::Fatal, fmt("out of bounds access on reserved_vector."));
@ -587,32 +591,36 @@ public:
void set_size(size_t n) { x0_size = n; } void set_size(size_t n) { x0_size = n; }
void set_data(T* data) { x4_data = data; } void set_data(T* data) { x4_data = data; }
size_t size() const noexcept { return x0_size; } [[nodiscard]] size_t size() const noexcept { return x0_size; }
bool empty() const noexcept { return x0_size == 0; } [[nodiscard]] bool empty() const noexcept { return x0_size == 0; }
const T* data() const noexcept { return x4_data; } [[nodiscard]] const T* data() const noexcept { return x4_data; }
T* data() noexcept { return x4_data; } [[nodiscard]] T* data() noexcept { return x4_data; }
T& back() { return _value(x0_size - 1); } [[nodiscard]] T& back() { return _value(x0_size - 1); }
T& front() { return _value(0); } [[nodiscard]] T& front() { return _value(0); }
const T& back() const { return _value(x0_size - 1); } [[nodiscard]] const T& back() const { return _value(x0_size - 1); }
const T& front() const { return _value(0); } [[nodiscard]] const T& front() const { return _value(0); }
const_iterator begin() const noexcept { return const_iterator(std::addressof(_value(0))); } [[nodiscard]] const_iterator begin() const noexcept { return const_iterator(std::addressof(_value(0))); }
const_iterator end() const noexcept { return const_iterator(std::addressof(_value(x0_size))); } [[nodiscard]] const_iterator end() const noexcept { return const_iterator(std::addressof(_value(x0_size))); }
iterator begin() noexcept { return iterator(std::addressof(_value(0))); } [[nodiscard]] iterator begin() noexcept { return iterator(std::addressof(_value(0))); }
iterator end() noexcept { return iterator(std::addressof(_value(x0_size))); } [[nodiscard]] iterator end() noexcept { return iterator(std::addressof(_value(x0_size))); }
const_iterator cbegin() const noexcept { return begin(); } [[nodiscard]] const_iterator cbegin() const noexcept { return begin(); }
const_iterator cend() const noexcept { return end(); } [[nodiscard]] const_iterator cend() const noexcept { return end(); }
const_reverse_iterator rbegin() const noexcept { return const_reverse_iterator(std::addressof(_value(x0_size - 1))); } [[nodiscard]] const_reverse_iterator rbegin() const noexcept {
const_reverse_iterator rend() const noexcept { return const_reverse_iterator(std::addressof(_value(-1))); } return const_reverse_iterator(std::addressof(_value(x0_size - 1)));
reverse_iterator rbegin() noexcept { return reverse_iterator(std::addressof(_value(x0_size - 1))); } }
reverse_iterator rend() noexcept { return reverse_iterator(std::addressof(_value(-1))); } [[nodiscard]] const_reverse_iterator rend() const noexcept {
const_reverse_iterator crbegin() const noexcept { return rbegin(); } return const_reverse_iterator(std::addressof(_value(-1)));
const_reverse_iterator crend() const noexcept { return rend(); } }
[[nodiscard]] reverse_iterator rbegin() noexcept { return reverse_iterator(std::addressof(_value(x0_size - 1))); }
[[nodiscard]] reverse_iterator rend() noexcept { return reverse_iterator(std::addressof(_value(-1))); }
[[nodiscard]] const_reverse_iterator crbegin() const noexcept { return rbegin(); }
[[nodiscard]] const_reverse_iterator crend() const noexcept { return rend(); }
T& operator[](size_t idx) { return _value(idx); } [[nodiscard]] T& operator[](size_t idx) { return _value(idx); }
const T& operator[](size_t idx) const { return _value(idx); } [[nodiscard]] const T& operator[](size_t idx) const { return _value(idx); }
}; };
template <class ForwardIt, class T> template <class ForwardIt, class T>