View source code
							
							
						
								Display the source code in core/attribute.d from which this
								page was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create a
								Bugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.
								Requires a signed-in GitHub account. This works well for small changes.
								If you'd like to make larger changes you may want to consider using
								local clone.
							
						Enum core.attribute.mustuse
Use this attribute to ensure that values of a struct or union type are
 not discarded.
						
				enum mustuse
				 : void { ... }
						
					
				The value of an expression is considered to be discarded if
- the expression is the top-level expression in a statement or the left-hand expression in a comma expression, and
-       the expression is not an assignment (=,+=, etc.), increment (++), or decrement (--) expression.
 If the declaration of a struct or union type has the @mustuse
 attribute, the compiler will emit an error any time a value of that type
 would be discarded.
 Currently, @mustuse is only recognized by the compiler when attached to
 struct and union declarations. To allow for future expansion, attaching
 @mustuse to a class, interface, enum, or function declaration is
 currently forbidden, and will result in a compile-time error. All other uses
 of @mustuse are ignored.
Enum members
| Name | Description | 
|---|
Examples
@mustuse struct ErrorCode { int value; }
extern(C) ErrorCode doSomething();
void main()
{
    // error: would discard a value of type ErrorCode
    //doSomething();
    ErrorCode result;
    // ok: value is assigned to a variable
    result = doSomething();
    // ok: can ignore the value explicitly with a cast
    cast(void) doSomething();
}Authors
Jacob Carlborg
License
					Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.