Ventana gtkmm utilizando Application

Basándonos en el ejemplo de Ventana con botón en gtkmm, re-escribimos el código utilizando el nuevo esquema de trabajo con Gtk::Application.

/* vim: set et sw=4 sts=4 :
 *
 * Basado en un ejemplo de https://developer.gnome.org/gtkmm-tutorial/stable/sec-basics-simple-example.html.en
 *
 * Se compila con:
 * g++ main.cpp $(pkg-config --cflags --libs gtkmm-3.0)
 *
 */
 //Se incluyen todos los tipos de la librería (no óptimo) 
#include <gtkmm.h>
#include <iostream>
 // Función 'callback' para atender la señal "clicked" del botón de salir
void on_salir_clicked(Glib::RefPtr<Gtk::Application> app){
    std::cout << "[recibido el evento clicked]" << std::endl;
      //Salimos del loop de eventos
    app->quit();
}
 int main(int argc, char *argv[])
{
  //Crea la aplicación de gtkmm sin nombre, contemplando argumentos externos
  //Admite un nombre como parámetro opcional para evitar ventanas duplicadas
  auto app = Gtk::Application::create(argc, argv);
   //Crea una ventana simple con tamaño determinado
  Gtk::Window ventana;
  ventana.set_default_size(200, 200);
     //Crea el botón con texto y un callback sobre la señal 'clicked'
  Gtk::Button salir("Salir");
  salir.signal_clicked().connect(sigc::bind(sigc::ptr_fun(on_salir_clicked), app));
   //Agrega el botón a la ventana y muestra el contenido
  ventana.add(salir);
  ventana.show_all();
   //Ejecuta la aplicación y bloquea hasta que el usuario decide salir
  //con la cruz o hace un click en el botón.
  return app->run(ventana);
}