Re: Problem with function pointer



Sohail Ahmed Siddiqui wrote:
[...] i have to use a function that should take int as parameter
and in some cases it has no parameter list. My class looks some
thing like this

class FunctionThread : public Threads
{
public:
typedef int (*Function)();
FunctionThread(Function function,
size_t stackSize=StackSize::DEFAULT,
Priority priority=Priority::INHERIT,
SchedulingPolicy schedpol=SchedulingPolicy::INHERIT,
const std::string& name="",
bool detached=true);
[...]
This works very well with functions that have no parameters, but if i
change typedef int (*Function)(); to typedef int (*Function)(int);
some how it doesn't seem to work at all, can some one please tell me
how can i change this so that it can take int as normal parameters?

1. Provide a sensible error description. You basically said "I have this
code and it works, I want to change it in some way which I'm not showing
you and then it doesn't work". How should we know what exactly you did and
how you want to use it? Also, please remove everything that is not
necessary to demonstrate the problem (I dare say you will quickly find
that it even has nothing to do with threads but is just a C++ problem).

2. If you want universal functions that can carry any kind of parameter
flexibly, take a look at Boost.Functional and Boost.Bind. While you're
there, you could also take a look at Boost.Thread, although that doesn't
give you access to scheduling policies or the stacksize, so might not be
powerful enough for your case.

Uli

.