View source code Display the source code in std/functional.d from which this page was generated on github. 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. Page wiki View or edit the community-maintained wiki page associated with this page.

Function std.functional.toDelegate

Convert a callable to a delegate with the same parameter list and return type, avoiding heap allocations and use of auxiliary storage.

Prototype

auto toDelegate(F)(
  F fp
)
if (isCallable!F);

Examples

void doStuff() {
    writeln("Hello, world.");
}

void runDelegate(void delegate() myDelegate) {
    myDelegate();
}

auto delegateToPass = toDelegate(&doStuff);
runDelegate(delegateToPass);  // Calls doStuff, prints "Hello, world."

BUGS

  • Does not work with @safe functions.
  • Ignores C-style / D-style variadic arguments.

Authors

Andrei Alexandrescu

License

Boost License 1.0.

Comments