|
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