OK, so given the working C++ code:

#include <gtkmm/application.h>
#include <gtkmm/applicationwindow.h>
#include <gtkmm/label.h>

class HelloWorldWindow: public Gtk::ApplicationWindow {
 public:
  HelloWorldWindow()
    : hello_world("Hello World") {
    set_title("Hello World");
    add(hello_world);
    show_all_children();
  }
 private:
  Gtk::Label hello_world;
};

int main(int argc, char * argv[]) {
  auto application = Gtk::Application::create(argc, argv);
  HelloWorldWindow helloWorld;
  return application->run(helloWorld);
}

by a process of trial and (much) error, I came up with the D code:

import gtk.Application: Application;
import gtk.ApplicationWindow: ApplicationWindow;
import gtk.Label: Label;
import gtkc.giotypes: GApplicationFlags;

class HelloWorld: ApplicationWindow {
  this(Application application) {
    super(application);
    setTitle("Hello World.");
    add(new Label("Hello World"));
    showAll();
  }
}

int main(string[] args) {
  auto application = new Application("uk.org.winder.gtkd.helloworld", GApplicationFlags.NONE);
  auto helloWorld = new HelloWorld(application);
  return application.run(args);
}

which compiles with dmd 2.065 and gdc 4.9.1, but highlights a deep problem with ldc2 :-( However when the dmd compiled version is executed, I get a segmentation fault. Using gdb I get the stack trace:

#0  0x00007ffff6a80220 in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#1  0x00007ffff6a7de2b in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#2  0x00007ffff3cf56eb in g_cclosure_marshal_VOID__OBJECTv ()
   from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x00007ffff3cf2644 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x00007ffff3d0cb07 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5  0x00007ffff3d0d46f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff6cc5f52 in gtk_window_set_application () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#7  0x00007ffff3cf7cfd in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff3cf9ab5 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffff3cf9df1 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00000000006b1ff9 in gtk.ApplicationWindow.ApplicationWindow.__ctor() ()
#11 0x0000000000696cb9 in helloWorld_d_gtkd.HelloWorld.__ctor() ()
#12 0x0000000000696d95 in D main ()
#13 0x00000000008575e8 in rt.dmain2._d_run_main() ()
#14 0x0000000000857542 in rt.dmain2._d_run_main() ()
#15 0x00000000008575a8 in rt.dmain2._d_run_main() ()
#16 0x0000000000857542 in rt.dmain2._d_run_main() ()
#17 0x00000000008574c3 in _d_run_main ()
#18 0x0000000000696dc7 in main ()

Hopefully I am doing something trivially silly. (Though segmentation fault isn't a good result of just being silly.)