Boost logo

Boost :

From: Doug Gregor (gregod_at_[hidden])
Date: 2001-03-15 15:14:09


On Thursday 15 March 2001 11:20, you wrote:
[snip]
> > - Add an extra line feed at the end of each line (happens
>
> everywhere)
>
> This one I don't understand. Is it a problem with the \r\n
> DOS/Windows line endings?
>

Both GCC and Comeau complain if there is no end-of-line marker after the last
line of the file, if that line is a preprocessor directorive. It's a very
strict interpretation of the C++ standard which states that the newline
character is the last character in a preprocessing directive, so there must
be a newline after every line in the file that has a preprocessing directive,
and an end-of-file doesn't count.

> > - Nested "impl" classes have to be declared friends of their
>
> enclosing
>
> > classes (semaphore.hpp, mutex.hpp, fast_mutex.hpp,
>
> recursive_mutex.hpp)
>
> This one I don't buy. The "nested class" does not use the "enclosing
> class" in any way while the "enclosing class" uses only public
> methods of the "nested class". I see no need for friendship in
> either direction.
>

Each of the "impl" classes uses "cv_state", which is a private type.

Comeau C/C++ 4.2.44 (Aug 2 2000 16:10:16) for RedHat_LINUX_INTEL_ELF_BETA3
Copyright 1988-2000 Comeau Computing. All rights reserved.
MODE:strict errors C++
 
"../src/mutex.cpp", line 234: error: class "boost::mutex::cv_state" is
          inaccessible
          void do_lock(cv_state& state)
                       ^
 
"../src/mutex.cpp", line 240: error: class "boost::mutex::cv_state" is
          inaccessible
          void do_unlock(cv_state& state)
                         ^
 
"../src/mutex.cpp", line 176: warning: integer conversion resulted in a change
          of sign
              if (milliseconds == -1)

        Doug


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk