View source code
							
							
						
								Display the source code in std/traits.d from which thispage was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create aBugzilla 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 usinglocal clone.
							
						Enum member std.traits.isAssignable
Returns true iff a value of type Rhs can be assigned to a variable of
type Lhs.
						
				enum isAssignable(Lhs, Rhs) = isRvalueAssignable!(Lhs, Rhs) && isLvalueAssignable!(Lhs, Rhs);
						
					
				isAssignable returns whether both an lvalue and rvalue can be assigned.
If you omit Rhs, isAssignable will check identity assignable of Lhs.
Example
static assert( isAssignable!(long, int));
static assert(!isAssignable!(int, long));
static assert( isAssignable!(const(char)[], string));
static assert(!isAssignable!(string, char[]));
// int is assignable to int
static assert( isAssignable!int);
// immutable int is not assignable to immutable int
static assert(!isAssignable!(immutable int));
}
/**
Returns `true` iff an rvalue of type `Rhs` can be assigned to a variable of
type `Lhs`.
*/
enum isRvalueAssignable(Lhs, Rhs = Lhs) = __traits(compiles, { lvalueOf!Lhs = rvalueOf!Rhs; 
Authors
Walter Bright,
            Tomasz Stachowiak (isExpressions),
            Andrei Alexandrescu,
            Shin Fujishiro,
            Robert Clipsham,
            David Nadlinger,
            Kenji Hara,
            Shoichi Kato
License
					Copyright © 1999-2025 by the D Language Foundation | Page generated by ddox.