Boost logo

Boost Users :

From: Darin Adler (darin_at_[hidden])
Date: 2002-02-04 03:33:44

On 2/4/02 12:02 AM, jeffhung_at_[hidden] wrote:

> I cannot compile the thread example listed on the document:
> [...]
> boost::thread thrd(thread_alarm(secs));
> [...]
> test_thread0.cpp: In function `void run()':
> test_thread0.cpp:28: request for member `join' in `thrd', which is of
> non-aggregate type `boost::thread ()(thread_alarm)'
> I've tried to figure out where the problem is and failed to find the
> definition of class thread. Do I miss something? Or, is it just a freebsd
> porting problem?

This is a bug in the example that has been fixed for the next upcoming Boost
release. The web site will be updated soon.

The problem line above is can be interpreted as a declaration of a function
named thrd with a parameter of type thread_alarm named secs, rather than a
declaration of an object named thrd. And the C++ rule is that if it can be a
function declaration, then it is. The fix is to replace the line with these
two lines:

    thread_alarm alarm(secs);
    boost::thread thrd(alarm);

Hope that helps.

    -- Darin

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at