eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.57k stars 373 forks source link

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

Open pbarone-latai opened 2 months ago

pbarone-latai commented 2 months ago

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.

https://github.com/eclipse-iceoryx/iceoryx/blob/f0696966c51e35b6c8f84290d40df7f87c6ed19c/iceoryx_hoofs/container/include/iox/vector.hpp#L200-L203

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

elBoberido commented 2 months ago

@pbarone-latai we do not have objections but you might need to add quite a lot of IOX_DISCARD_RESULT across the codebase