Skip to content

Mark iox container operations which return bool as [[nodiscard]] #2277

@pbarone-latai

Description

@pbarone-latai

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.

/// @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

No one assigned

    Labels

    refactoringRefactor code without adding features

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions