-
Notifications
You must be signed in to change notification settings - Fork 446
Open
Labels
refactoringRefactor code without adding featuresRefactor code without adding features
Description
Brief feature description
Marking any operation in iox containers which may fail and return bool as [[nodiscard]]
Detailed information
The idea here is pretty straightforward. Taking iox::vector for example, the API for push back returns bool as compared to void of std::vector::push_back.
iceoryx/iceoryx_hoofs/container/include/iox/vector.hpp
Lines 200 to 203 in f069696
| /// @brief appends the given element at the end of the vector | |
| /// @param[in] value to append to the vector | |
| /// @return true if successful, false if vector already full | |
| bool push_back(const T& value) noexcept; |
Marking this code as [[nodiscard]] will raise compiler warnings in the event that a user is pushing back blindly onto an iox::vector and not handling the case where it fails. If the user has performed size checks at the beginning of a loop, they can simply use ...
std::ignore = my_iox_vector.push_back(value);
If the iceoryx team is aligned with this approach, I can put up a PR to add the nodiscards
Metadata
Metadata
Assignees
Labels
refactoringRefactor code without adding featuresRefactor code without adding features