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