Boost logo

Boost Users :

From: Joel FALCOU (joel.falcou_at_[hidden])
Date: 2008-03-19 18:49:42


I'm currently trying to make some generic adaptator between a large
numbers of legacy code and a library of mine that provides a simple way
of distributing code over cluster's nodes.
A classic example (in fatc the simplest one ) is that :

1/ users have a library of compiled function with prototype like
some_type func(const some_other_type& x, const some_another type& y,
const yet_another_type& z );

2/ my library awaits functor with the following prototype
void operator()( const some_other_type& x, const some_another type& y,
const yet_another_type& z, some_type& out );

Now combine this with function using non-const reference or pointer as
argument to return more than one results or functions having either
arguments or alwasy returning void. There is no cap on # of arguments.
I was thinking to find a way to detect the return type of any "free
function" pointer from the user library and detecting its arguments
type, build the corresponding function object and assign it with the
user function pointer
before passsing it to my own code. Basically, making this code

float some_func( const float& f );

floatoutput;
float input
run( pipeline(seq(some_func),seq(some_func)) )(input)(output);

build a 2 staegs pipeline (thsi is already done) that somehow use the
boost::function wrapper around the free function
as callable entity, making seq able to do all the grunt work of findidng
the correct boost::function<> type.

Does it seems viable or I am making some wrong assumptions on the
capabilities of boost::functions ?

Thanks for your insight

-- 
Joel FALCOU
Research Engineer @ Institut d'Electronique Fondamentale
Université PARIS SUD XI
France 

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net