Skip to content

Instantly share code, notes, and snippets.

@rizo
Last active December 14, 2015 08:49
Show Gist options
  • Save rizo/5060554 to your computer and use it in GitHub Desktop.
Save rizo/5060554 to your computer and use it in GitHub Desktop.
import std.stdio;
// (defmacro ex2 (X) `(defmacro ,X (Y) `(defun ,Y (pprint ',Y))))
mixin template ex2(alias X)
{
mixin(`template `~X~`(alias Y)
{
mixin("void "~Y~"() { writeln(\""~ Y ~"\"); }");
}`);
}
// >(ex2 criacoisas)
mixin ex2!"criacoisas";
// >(criacoisas muitascoisas)
mixin criacoisas!"muitascoisas";
void main()
{
// >(muitascoisas)
muitascoisas(); // Output: muitascoisas
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment