Sha256: b8b3efad3e1bb6b8f364218cc4e1de39bec9293b5b8aaa21166517360180b7b6

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

= Dub (Doxygen based Ubiquitous Binder)

This is a tool to ease the creation of scripting language bindings for a C++ library.
It is currently developed to crete the OpenCV bindings for Lua in Rubyk (http://rubyk.org).

The generator uses the xml output from Doxygen to avoid parsing C++ code by itself.

= Features

Currently, the parser supports:

 * class methods
 * overloaded class constructors
 * overloaded class methods
 * class instantiation from templates through typedefs
 * class alias through typedefs
 * automatic resolution of template parameters
 * automatic handling of default values
 * class enums
 * namespace enums
 * group constant defines
 * well tested

If you are not good at reading lists, here is an example of the kind of tricks Dub plays with types:

  template<class T>
  class Point_ {
    ...
  };

  template<class T>
  class Size_ {
    Size_(const Point_<T>);
  };
  typedef Size_<int> Size2i;
  typedef Size2i Size;

  typedef Point_<int> Point2i;
  typedef Point2i Point;


All these typedefs and templates will generate two class bindings with some aliases:

 * <tt>Size</tt>, aliased as <tt>Size2i</tt>
 * <tt>Point</tt>, aliased as <tt>Point2i</tt>

And what's really good is that in the definition for the <tt>Size</tt> constructor, <tt>Point_<T></tt> is
recognized as <tt>Point</tt> !

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dub-0.6.3 README.rdoc
dub-0.6.2 README.rdoc