View source code
							
							
						
								Display the source code in std/experimental/typecons.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.
							
						std.experimental.typecons.unwrap  - multiple declarations
				Function unwrap
Extract object previously wrapped by wrap.
						
				inout(Target) unwrap(Target, Source)
				(
				
				  inout Source src
				
				);
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | type of wrapped object | 
| src | wrapper object returned by wrap | 
Returns
the wrapped object, or null if src is not a wrapper created
 by wrap and Target is a class
Throws
ConvException when attempting to extract a
 struct which is not the wrapped type
See also
Function unwrap
Extract object previously wrapped by wrap.
						
				inout(Target) unwrap(Target, Source)
				(
				
				  inout Source src
				
				);
						
					
				Parameters
| Name | Description | 
|---|---|
| Target | type of wrapped object | 
| src | wrapper object returned by wrap | 
Returns
the wrapped object, or null if src is not a wrapper created
 by wrap and Target is a class
Throws
ConvException when attempting to extract a
 struct which is not the wrapped type
See also
Example
interface Quack
{
    int quack();
    @property int height();
}
interface Flyer
{
    @property int height();
}
class Duck : Quack
{
    int quack() { return 1; }
    @property int height() { return 10; }
}
class Human
{
    int quack() { return 2; }
    @property int height() { return 20; }
}
struct HumanStructure
{
    int quack() { return 3; }
    @property int height() { return 30; }
}
Duck d1 = new Duck();
Human h1 = new Human();
HumanStructure hs1;
interface Refreshable
{
    int refresh();
}
// does not have structural conformance
static assert(!__traits(compiles, d1Example
import stdAuthors
Andrei Alexandrescu, Bartosz Milewski, Don Clugston, Shin Fujishiro, Kenji Hara
License
					Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.