1. Revision History
1.1. Revision 1 - November 7th, 2018
- 
     Add Tony Table and fix the example in the Tony Table. 
1.2. Revision 0 - October 7th, 2018
- 
     Initial release. 
2. Motivation
| Currently | With Proposal | 
|---|---|
| 
 | 
 | 
The 
This paper adds an addendum to allow a person to add a string attribute token to let someone provide a small reasoning or reminder for why a function has been marked 
3. Design Considerations
This paper is an enhancement of a preexisting feature to help programmers provide clarity with their code. Anything that makes the implementation warn or error should also provide some reasoning or perhaps point users to a knowledge base or similar to have any questions they have about the reason for the 
The design is very simple and follows the lead of the 
Adding a reason to 
4. Wording
All wording is relative to [n4762].
4.1. Intent
The intent of the wording is to let a programmer specify a string literal that the compiler can use in their warning / error display for, e.g. 
4.2. Feature Test Macro
4.3. Proposed Wording
Modify §14.1 [cpp.cond]'s Table 15:
Attribute Value nodiscard 201603L201811L
Append the following to §9.11.9 Nodiscard attribute [dcl.attr.nodiscard]'s clause 1:
1 The attribute-token nodiscard may be applied to the declarator-id in a function declaration or to the declaration of a class or enumeration. It shall appear at most once in each attribute-list and no attribute argument-clause shall be present. An attribute-argument-clause may be present and, if present, it shall have the form:
( string-literal )
[Note: The string-literal in the attribute-argument-clause could be used to explain the rationale for why the entity must not be discarded. — end note]