Boost logo

Boost :

From: jaakko.jarvi_at_[hidden]
Date: 1999-11-04 07:15:35


Hello,

I'm thinking of submitting the Binder Library (BL) to Boost.

BL implements two things:

------------------------
1: a tuple abstraction:

Example:

  tuple<int, char, string> foo() { return make_tuple(1, 'a', "hello"); }
  int i; char c; string s;
  ...
  tie(i, c, s) = foo();
  cout << i << c << s;

// outputs: 1ahello

-------------------------------------------
2: a binding mechanism based on placeholders in the parameter list

Example:
  A foo(A, B, C, D);
  A a; B b; C c; D d;
  ...
  bind(foo, a, b, c, d) // creates a nullary function object
  bind(foo, free1, b, c, d) // a unary function object
  bind(foo, a, free1, free2, d) // a binary function object

  bind(foo, a, free1, free2, d)(b, c) calls foo(a, b, c, d)

The mechanism allows function composition:
  
Example:
  bind(foo, bind(a, b, free1, free2), b, c, free2)(c2, d2)

   invokes:

  foo(foo(a, b, c2, d2), b, c, d2)

------------------------------

The library homepage is www.cs.utu.fi/BL

The library is currently under a kind of an Artistic License.

Basically it can be used freely for any purpose, commercial or
non-commercial, it can be changed freely as well.
The only restriction is, that if changes made to BL are distributed
publicly, they must be clearly marked at the source, and the copyright
holder is entitled to incorporate the changes to the original library.

My questions are:

        Do you find the library would a suiable addition to Boost repository?

        Does the license cause problems?

Best Regards Jaakko Järvi


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk