[ 
https://issues.apache.org/jira/browse/MESOS-7410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bannier updated MESOS-7410:
------------------------------------
    Labels: tech-debt  (was: )

> Make it harder to ignore errors returned from functions.
> --------------------------------------------------------
>
>                 Key: MESOS-7410
>                 URL: https://issues.apache.org/jira/browse/MESOS-7410
>             Project: Mesos
>          Issue Type: Improvement
>          Components: stout
>            Reporter: Benjamin Bannier
>              Labels: tech-debt
>
> Mesos (or more specifically stout) uses a number of types which can capture 
> either a value or an error (e.g., {{Try}} or {{Result}}). These are used 
> similar to exceptions, but in contrast to exceptions, the possible errors are 
> part of the function's types. It is also possible to (implicitly) ignore 
> errors return from functions producing such values (this is not possible with 
> exceptions).
> C\+\+11 introduced a generalized syntax for attributes which makes it 
> possible to add attributes to types. C++17 standardized an attribute 
> {{nodiscard}} which
> {quote}
> Appears in a function declaration, enumeration declaration, or class 
> declaration. If a function declared nodiscard or a function returning an 
> enumeration or class declared nodiscard by value is called from a 
> discarded-value expression other than a cast to void, the compiler is 
> encouraged to issue a warning.
> {quote}
> With that it is possible to annotate types with a {{nodiscard}} attribute 
> which was not possible with e.g., GNU attributes, e.g.,
> {code}
> class [[nodiscard]] Try;
> {code}
> We should annotate our error types with {{nodiscard}} to make sure errors are 
> not missed.
> This will likely require updating call sites to handle currently ignored 
> return values (this appears more widespread in users of e.g., {{os::close}} 
> or {{os::sleep}}). Since compilers might emit errors for unknown attributes 
> we should also prevent breaking a build on compilers not supporting this 
> attribute.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to