I wonder if it's possible to make a wrapper which doesn't require the pipeable function name to be different, or in a separate namespace, compared to the original function. I can't figure out myself how to make such a wrapper.
Yes, its possible to have a wrapper that makes the function pipable in a way that the function can be piped or called normally without piping it in. In PStade Egg it was called [ambi] (http://p-stade.sourceforge.net/boost/libs/egg/doc/html/boost_egg/function_ad...), but you have to specify the number of parameters of the function. Using the callable technique from Eric Niebler, we can actually detect arity even in C++03. So a general purpose pipable_adaptor is very possible. I created one for a library I am writing, you can see the source code for pipable here: https://github.com/pfultz2/Zen/blob/master/zen/function/pipable.h Paul