Proposed wording for likely and unlikely attributes (Revision 5) (original) (raw)

10.6.N Likelihood attributes [dcl.attr.likelihood]

The _attribute-token_s likely and unlikely may be applied to labels or statements. The _attribute-token_s likely and unlikely shall appear at most once in each attribute-list and no attribute-argument-clause shall be present. The attribute-token likely shall not appear in an attribute-specifier-seq that contains the attribute-token unlikely.

[_Note:_The use of the likely attribute is intended to allow implementations to optimize for the case where paths of execution including it are arbitrarily more likely than any alternative path of execution that does not include such an attribute on a statement or label. The use of the unlikely attribute is intended to allow implementations to optimize for the case where paths of execution including it are arbitrarily more unlikely than any alternative path of execution that does not include such an attribute on a statement or label. A path of execution includes a label if and only if it contains a jump to that label. Excessive usage of either of these attributes is liable to result in performance degradation. _— end note_]