From: David Maisonave (boost_at_[hidden])
Date: 2006-01-30 08:30:25


"Larry Evans" <cppljevans_at_[hidden]> wrote in message
news:<drl3kh$1b3$1_at_[hidden]>...
> On 01/30/2006 04:01 AM, David Maisonave wrote:
> > "David Maisonave" <boost_at_[hidden]> wrote in message
> > news:<000101c6255d$eec482c0$0f00a8c0_at_david>...
> >
> >>"Larry Evans" <cppljevans_at_[hidden]> wrote in message
> >>news:<drk4c6$vu8$1_at_[hidden]>...
> >>
> >>>On 01/29/2006 06:15 PM, David Maisonave wrote:
> >>>
> >>>>"Larry Evans" <cppljevans_at_[hidden]> wrote in message
> >>>>news:<drafuf$v06$1_at_[hidden]>...
> >>>
> >>>[snip]
> >>>Do you mean the test driver code in libs/policy_ptr/test is very
> >>>confusing? In particular, do you find the
> >>>std_ptr_shared_ptr_test.cpp confusing?
> >>
> >>I could only answer that question if I could find that file. Where
> >>are
> >>you getting this file from? I don't see a reference to it using the
> >>following link:
> >>http://cvs.sourceforge.net/viewcvs.py/boost-sandbox/boost-sandbox/boos
> >>t/poli
> >>cy_ptr/policy/
> >>
> >>Could you please provide a full link to this test?
> >
> >
> > Just found the link to it:
> > http://cvs.sourceforge.net/viewcvs.py/boost-sandbox/boost-sandbox/li
> > bs/polic
> > y_ptr/test/
> >
> > I downloaded both the test code, and the policy_ptr code, and the
> > policy_ptr code does not compile. I tried compiling it on VC++ 7.1
> > and GNU 3.x, and both fail to compile the code.
> >
> >
> > Boost\Policy_ptr\Policy\no_copy.hpp
> > The above header gives a compile error for the following line:
> > #include "../always_false.hpp" //(Line 12)
> >
> > Boost\Policy_ptr\Policy\ref_counted.hpp
> > The above header gives the following error:
> > Boost\Policy_ptr\Policy\ref_counted.hpp(155) : error C2061: syntax error
:
> > identifier 'U'
> >
> > Line 155 has the following: BOOST_SP_DECLARE_TEMPLATE_FRIEND(U,
> > ref_counted_, 2)
> >
> > I also notice the following:
> > // In Boost\Policy_ptr\Policy\ref_linked.hpp Line 20
> > ref_node(void)
> > : prev_(this), next_(this) { }
> >
> > I would think the above code would result in undefined behavior,
> > since a pointer to an object that is not yet fully constructed is
> > being pass to a data member.
> >
> > I'm not sure how the above code would have been tested, if it's not
> > compliable.
>
> The following is from my working copy of the code:
> <----------- cut here ------------
> cd
> /home/evansl/prog_dev/boost-cvs/ro/boost/sandbox/lje/libs/policy_ptr/test/
> bjam --v2 std_ptr_shared_ptr_test
> warning: Python location is not configured
> warning: the Boost.Python library won't be built
> Building Boost.Regex with the optional Unicode/ICU support disabled.
> Please refer to the Boost.Regex documentation for more information
> (and if you don't know what ICU is then you probably don't need it).
> ...patience...
> ...found 483 targets...
> ...updating 4 targets...
> gcc.compile.c++
>
../../../../../bin.v2/sandbox/lje/libs/policy_ptr/test/std_ptr_shared_ptr_te
st.test/gcc/debug/std_ptr_shared_ptr_test.o
> gcc.link
>
../../../../../bin.v2/sandbox/lje/libs/policy_ptr/test/std_ptr_shared_ptr_te
st.test/gcc/debug/std_ptr_shared_ptr_test
> testing.capture-output
>
../../../../../bin.v2/sandbox/lje/libs/policy_ptr/test/std_ptr_shared_ptr_te
st.test/gcc/debug/std_ptr_shared_ptr_test.run
> **passed**
>
../../../../../bin.v2/sandbox/lje/libs/policy_ptr/test/std_ptr_shared_ptr_te
st.test/gcc/debug/std_ptr_shared_ptr_test.test
> ...updated 4 targets...
>
> Compilation finished at Mon Jan 30 07:06:42
> >----------- cut here ------------
> Obviously the repository is not in sync with my working copy, or maybe
> the compiler is different. My gcc is (from contents of
> ~/user-config.jam):
>
> <----------- cut here ------------
> # Configure specific gcc version, giving alternative name to use
> using gcc : : "/usr/bin/g++-4.1" ;
> >----------- cut here ------------
> I believe the code was developed and tested with g++-3.4.
>
> I will upload the latest code and make sure it's in sync with my
> working copies. It takes about 8 hrs. for the upload to be seen in
> the view-cvs interface.
>
> Thanks for pointing this out. Sorry for the mistake.
>

You might want to test it in a clean environment.
The #include "../always_false.hpp" header that's in the no_copy.hpp would be
hard to pick up if it's compiled in an existing working environment, that
already has that file.