$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: William E. Kempf (williamkempf_at_[hidden])
Date: 2002-05-31 17:11:54
----- Original Message -----
From: "Paul Elliott" <pelliott_at_[hidden]>
To: "Boost Mailing list" <boost_at_[hidden]>
Sent: Friday, May 31, 2002 2:00 PM
Subject: [boost] thread programing by deriving?
>Thread programming by deriving. Does anyone have any classes
>that allow you to define your thread code by deriving from
>a base class?
>I am used to this style. It does not give the user the
>ability to make an error doing casting of void* in defining
>the thread run code.
Boost.Threads does not have a problem with casting void*. The thread
function is a function object that takes no parameters at all. Using
Boost.Bind or rolling your own function objects allows you to pass data with
no void* conversions. Example:
void foo(int a)
{
}
int main(int argc, char* argv[])
{
boost::thread thread(boost::bind(&foo, 10));
thread.join();
}
This creates a thread using the foo function, passing it a value of 10. No
where in this code is there a void*.
If you still prefer using derivation this should be trivial to implement on
top of Boost.Threads.
Bill Kempf