View source code
Display the source code in std/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.
Enum member std.typecons.generateAssertTrap
Predefined how-policies for AutoImplement
. These templates are also used by
BlackHole
and WhiteHole
, respectively.
enum generateAssertTrap(C, func...)
= "throw new NotImplementedError(\"" ~ C .stringof ~ "." ~ __traits(identifier, func) ~ "\");";
Example
alias BlackHole(Base) = AutoImplement!(Base, generateEmptyFunction);
interface I
{
int foo();
string bar();
}
auto i = new BlackHole!I();
// generateEmptyFunction returns the default value of the return type without doing anything
writeln(i .foo); // 0
assert(i .bar is null);
Example
import std .exception : assertThrown;
alias WhiteHole(Base) = AutoImplement!(Base, generateAssertTrap);
interface I
{
int foo();
string bar();
}
auto i = new WhiteHole!I();
// generateAssertTrap throws an exception for every unimplemented function of the interface
assertThrown!NotImplementedError(i .foo);
assertThrown!NotImplementedError(i .bar);
Authors
Andrei Alexandrescu, Bartosz Milewski, Don Clugston, Shin Fujishiro, Kenji Hara
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.