I'd vote for option 1, given that, as you say, this is closely related to
the return type, which putting the macro with the type makes clear.

Also looking at buffer-pool.h in the review, it doesn't look overly noisy
to me.

On Fri, Jan 6, 2017 at 2:59 PM Tim Armstrong <[email protected]>
wrote:

> Hi All,
>   I wanted to poll the Impala community for opinions about style for
> declaring functions where the caller is expected to do something with the
> return value.
>
> Ideally we'd be able to declare Status with an attribute that made this
> take effect globally, but unfortunately that's not available until C++17.
>
> So we need to annotate each Status-returning function. The two alternatives
> we discussed on this CR (https://gerrit.cloudera.org/#/c/4878/) were:
>
> #1 - a special macro wrapping Status
>
> MUST_USE(Status) DoSomethingThatCanFail(int64_t foo, Bar* bar);
>
> Pros:
> * Closely connected to the return type that it affects
> * It's easier to search/replace Status with MUST_USE(Status)
>
> Cons:
> * Could get visually noisy if we use it everywhere
>
> #2 - a macro that gets appended to the declaration:
>
> Status DoSomethingThatCanFail(int64_t foo, Bar* bar) WARN_UNUSED_RESULT;
>
> Pros:
> * Macro is slightly
> * Less visually noisy since it's at the end of the declaration
>
> What do people think?
>

Reply via email to