View source code
Display the source code in std/traits.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 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));
}
// ditto
private 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-2022 by the D Language Foundation | Page generated by ddox.