Fit: C++ function utility library

Hi,
I developed a library called Fit, that provides a lot of utilites for
dealing
with function objects, here:
https://github.com/pfultz2/Fit
First, it provides a mechanism to construct function objects at compile time
using lambdas, for example:
const constexpr auto sum = FIT_STATIC_LAMBDA(auto x, auto y)
{
return x + y;
};
Secondly, it provides lots of adaptors to provide "enhancements" to the
function. For example, we could make the sum function pipable:
const constexpr auto sum = pipable(FIT_STATIC_LAMBDA(auto x, auto y)
{
return x + y;
});
Then call it like this:
auto three = 1 | sum(2);
Or we could make it an infix operator:
const constexpr auto sum = infix(FIT_STATIC_LAMBDA(auto x, auto y)
{
return x + y;
});
And then use it like this:
auto three = 1 <sum> 2;
Also, it provides the basic partial application and function composition:
auto add_1 = partial(sum)(1);
auto add_2 = compose(add_1, add_1);
auto four = add_2(1);
Now, the greatest benifit is being to do better overloading and even
recursive
functions using lambdas. So, for example, if we wanted to write a more
sophisticated `print` function that iterated over ranges and fusion
sequences
recursively, and printed it all out, we can write this using the Fit
library:
// Some helpers for template constraints
#define REQUIRES(...) typename std::enable_if<(decltype(__VA_ARGS__)()),
int>::type = 0
template class Trait, class... Ts>
constexpr auto trait(Ts&&...)
{
return std::integral_constant

This is very interesting to me. I've looked over the documentation and I will have some questions/observations. In the meantime, I would very much like to see this added to the Boost Incubator. www.blincubator.com Robert Ramey -- View this message in context: http://boost.2283326.n4.nabble.com/Fit-C-function-utility-library-tp4668629p... Sent from the Boost - Dev mailing list archive at Nabble.com.

In the meantime, I would very much like to see this added to the Boost Incubator.
Im having trouble getting that to work. It doesnt let me edit the fields. Or am I supposed to send you an email with the info and then you add the library? Thanks, Paul -- View this message in context: http://boost.2283326.n4.nabble.com/Fit-C-function-utility-library-tp4668629p... Sent from the Boost - Dev mailing list archive at Nabble.com.

In the meantime, I would very much like to see this added to the Boost Incubator.
Im having trouble getting that to work. It doesnt let me edit the fields. Or am I supposed to send you an email with the info and then you add the library?
I found where I can register. Sorry for the noise. -- View this message in context: http://boost.2283326.n4.nabble.com/Fit-C-function-utility-library-tp4668629p... Sent from the Boost - Dev mailing list archive at Nabble.com.

This is very interesting to me.
I've looked over the documentation and I will have some questions/observations.
In the meantime, I would very much like to see this added to the Boost Incubator.
www.blincubator.com
Robert Ramey
How do I edit the author name on the site? I tried to change the name from 'pfultz2' to 'Paul Fultz II' and now it shows copies of the repo but it is still the same name? Thanks, Paul -- View this message in context: http://boost.2283326.n4.nabble.com/Fit-C-function-utility-library-tp4668629p... Sent from the Boost - Dev mailing list archive at Nabble.com.

You can't change the author. (Though I can). You can invoke the "Edit My Profile" link to change your "Display Name". I did this for you so looks like we're done. Robert Ramey -- View this message in context: http://boost.2283326.n4.nabble.com/Fit-C-function-utility-library-tp4668629p... Sent from the Boost - Dev mailing list archive at Nabble.com.
participants (2)
-
pfultz2
-
Robert Ramey