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.isCopyable
Determines whether the type S can be copied.
 If a type cannot be copied, then code such as MyStruct x; auto y = x; will fail to compile.
 Copying for structs can be disabled by using @disable this(this).
						
				enum isCopyable(S)
				 = is(typeof(()
{
S foo = S
				Parameters
| Name | Description | 
|---|---|
| S | The type to check. | 
Returns
true if S can be copied. false otherwise.
Example
struct S1 {}                        // Fine. Can be copied
struct S2 {         this(this) {}}  // Fine. Can be copied
struct S3 {@disable this(this) {}}  // Not fine. Copying is disabled.
struct S4 {S3 s;}                   // Not fine. A field has copying disabled.
class C1 {}
static assert( isCopyable!S1);
static assert( isCopyable!S2);
static assert(!isCopyable!S3);
static assert(!isCopyable!S4);
static assert(isCopyable!C1);
static assert(isCopyable!int);
static assert(isCopyable!(int[]));
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.