module runme; import std.stdio; import example; public class DCallback : Callback { public override void run() { writeln( "DCallback.run()" ); } } void main() { auto caller = new Caller(); writeln( "Adding and calling a normal C++ callback" ); writeln( "----------------------------------------" ); { scope auto callback = new Callback(); caller.setCallback(callback); caller.call(); caller.resetCallback(); } writeln(); writeln( "Adding and calling a D callback" ); writeln( "-------------------------------" ); { scope auto callback = new DCallback(); caller.setCallback(callback); caller.call(); caller.resetCallback(); } writeln(); writeln( "D exit" ); }