<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.comp.lib.boost.devel">
    <title>gmane.comp.lib.boost.devel</title>
    <link>http://blog.gmane.org/gmane.comp.lib.boost.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180802"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180798"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180786"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180785"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180784"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180770"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180769"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180767"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180765"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180763"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180761"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180752"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180750"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180747"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180743"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180727"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180720"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180715"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180711"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lib.boost.devel/180710"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180802">
    <title>Difficulties checking into release ready branch</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180802</link>
    <description>In following instructions to commit to the releae ready branch I get the 
following message:


Modified: BoostRelease\boost\archive\impl\basic_binary_iprimitive.ipp
Error: Commit failed (details follow):
Error: Your file or directory 'impl\basic_binary_iprimitive.ipp' is probably 
out-of-date
Error: The version resource does not correspond to the resource within the 
transaction.  Either the requested version resource is out of date (needs to 
be updated), or the requested version resource is newer than the transaction 
root (restart the commit).

This was after a bunch of files got commit successfully.  In the past when 
problems like this occured (as they often seem to), repeating the operation 
(with maybe an intervening clean up) seemed to plow through the situation. 
But this time it seems something is permantly stuck.

Any help would be appreciated.

Robert Ramey




_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Robert Ramey</dc:creator>
    <dc:date>2008-10-07T15:43:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180798">
    <title>boost::program_options question - enabling multiple usageof the same switch</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180798</link>
    <description> Hi,

This question was originally brought up here:

http://lists.boost.org/boost-users/2006/08/21633.php

but unfortunately was not answered.  What I basically want to do is to
enable something like running

 

$ myprog -v -v -v 

 

Where -v is some Boolean switch. 

 

 Thanks,

-Sergey

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Khaikin, Sergey</dc:creator>
    <dc:date>2008-10-07T13:25:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180786">
    <title>[mp_int] new release</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180786</link>
    <description>Hi all,

I made a new release of my multiprecision integer library with the
following changes:

- improved documentation
- serialization support
- bugfixes
- improved benchmark tool
- prime generation has been reworked
- probably some other things which I forgot

I believe it's pretty much ready for review now. The mp_int reference
section is slightly lacking in a few places, but other than that I
think it's pretty solid.

I have a few things in mind for the future of this library:

- improved division and squaring algorithms according to the papers on my disk.
- an implementation of an mp_int proxy type that acts on preallocated
memory, but does not manage memory itself. This can then be used to
improve the runtime of several algorithms.
- expression template support

There is pregenerated html documentation under libs/mp_math/doc/html/

http://www.boostpro.com/vault/index.php?action=downloadfile&amp;filename=mp_math_v03.zip&amp;directory=Math%20-%20Numerics&amp;


Kevin Sopp
___________________________________________</description>
    <dc:creator>Kevin Sopp</dc:creator>
    <dc:date>2008-10-06T13:40:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180785">
    <title>[spirit1] including type_traits.hpp</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180785</link>
    <description>When looking at &lt;http://thread.gmane.org/gmane.comp.lib.boost.devel/180769&gt;, i
noticed that &lt;boost\spirit\home\classic\core\parser.hpp&gt; includes
&lt;boost/type_traits.hpp&gt;, when only part of it (remove_reference.hpp?) actually
seems to be required.

Not really a problem, but including the full type_traits.hpp does add quite a
bit of weight to my precompiled header.

_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Richard Webb</dc:creator>
    <dc:date>2008-10-06T13:14:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180784">
    <title>[config] Any reason not to enable long long support in forSun's compiler?</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180784</link>
    <description>Title says it all really,  any reason why I should define 
BOOST_HAS_LONG_LONG for sun's compiler?  Seems to all work OK...

John. 

_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>John Maddock</dc:creator>
    <dc:date>2008-10-06T12:42:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180770">
    <title>[RFC] Protocol for operator. (dot) overloading</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180770</link>
    <description>Hi boosters,
I think that Adobe poly approach on "operator . overloading" could be
extracted as orthogonal to the polymorphic object container concept, and
easily generalized to serve all kinds of wrappers.

My proposal (see code in the vault: *http://tinyurl.com/5xo9or*) is to have
a class template (interface&lt;T,W,B&gt;) that describes the interface of type T,
forwarding any operation to the implementation type, got directly from the
wrapper (W). B is used when vertical inheritance is needed, either to
benefit of EBO or to insert a base class on top of the hierarchy (see
type_erasure_wrapper). There is actually a fourth boolean parameter, that
will be explained later.

interface&lt;T,W,B&gt; can be partially specialized for user types (and libraries
can provide the specializations for theirs), leaving the wrapper as free
parameter, so that the same specialization can be used for any wrapper we
can subsequently write, thus decoupling the interface description step from
the interface usage by a wrapper.

The interface </description>
    <dc:creator>Corrado Zoccolo</dc:creator>
    <dc:date>2008-10-05T19:16:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180769">
    <title>[tr1][spirit][hash] Boost trunk +VC9 - autolinking libboost_math</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180769</link>
    <description>
When test building some code with VC9 + the current Boost trunk i had a link
failure due to a missing libboost_math_c99-vc90-mt-1_37.lib, which i hadnt
built because i'm not using the math lib.

On investigation, this seems to be down to using Spirit/Hash(via
multi_index) when the "boost/tr1/tr1" dir is in the include path. More
specifically, the files:

spirit\home\classic\core\primitives\impl\numerics.ipp
functional\detail\float_functions.hpp

do an include &lt;cmath&gt;, which in this case includes &lt;boost\tr1\cmath.hpp&gt;,
which then includes &lt;boost/math/tr1.hpp&gt;, autolinking and all.

I can work around the problem by building the math lib or turning off auto
linking for it but it seems wrong that i have to do that. 
Is there a better official solution for this, such as using
&lt;config/no_tr1/cmath.hpp&gt; instead of &lt;cmath&gt; ?

Thanks,
Richard Webb
</description>
    <dc:creator>Richard Webb</dc:creator>
    <dc:date>2008-10-05T17:24:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180767">
    <title>[variant] unreferenced formal parameter warning from VC9</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180767</link>
    <description>
(i think i might have mentioned this before, but it still happens with the
current code, so...)

Using Variant on VC9 with warning level 4 can result in an unreferenced
parameter warning:

boost/variant/variant.hpp(289) : warning C4100: 'operand' : unreferenced
formal parameter

This can be silenced by extending the existing Borland workaround to apply
to VC as well. For example, change the existing:

#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0551))
        operand; // suppresses warnings

to

#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x0551)) ||
BOOST_WORKAROUND(BOOST_MSVC, &gt;= 1400)
        operand; // suppresses warnings


Thanks,
Richard Webb
</description>
    <dc:creator>Richard Webb</dc:creator>
    <dc:date>2008-10-05T13:20:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180765">
    <title>[asio] using a resolver::query to perform a "gethostbyaddr"</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180765</link>
    <description>Dear all,
it's kind of direct and easy to perform a  gethostbyname-like operation with
an asio::ip::tcp::resolver::query.

But is there a way to perform the opposite operation? I mean to perform a
gethostbyaddr-like operation where the input is an IP address, and output is
the associated DNS name.

Thanks in advance.

Best regards,

\Carlo Medas
_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Carlo Medas</dc:creator>
    <dc:date>2008-10-05T12:25:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180763">
    <title>[xpressive] recursive calls for matching repetitions.</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180763</link>
    <description>Eric,

I was recently hit by a stack overflow due to the way xpressive makes
recursive calls when dealing with patterns like *_, etc and was
wondering if there is an alternative, more efficient way of matching
these types of patterns.

p.s I know about keep() but that can get cumbersome to use everywhere.


_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Raindog</dc:creator>
    <dc:date>2008-10-05T04:54:33</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180761">
    <title>[asio] ip::tcp::iostream usage</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180761</link>
    <description>The classic example:

int main()
  {
    boost::asio::ip::tcp::iostream s("www.boost.org", "http");

    s &lt;&lt; "GET / HTTP/1.0\r\n";
    s &lt;&lt; "Host: www.boost.org\r\n";
    s &lt;&lt; "\r\n" &lt;&lt; std::flush;

    std::cout &lt;&lt; s.rdbuf();

    return 0;
  }


It works.

But with a server on port 8080, it does not seem to work anymore. The host
line was changed to

s &lt;&lt; "Host: www.boost.org:8080\r\n";


of course.
_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Gregory Dai</dc:creator>
    <dc:date>2008-10-05T04:54:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180752">
    <title>[GIL] compile time concerning apply_operation and explicit instantiation</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180752</link>
    <description>
Hi,

I'm using GIL's dynamic image extension, namely any_image_views in certain
places.
However on every occasion where an any_image_view is used I have to include
apply_operation.hpp so the operations can be instantiated.
On gcc-4.3.2 the inclusion of this header raises the compilation time at
least tenfold.
Somewhere on this list I found the claim that gil::variant is supposed to
reduce compilation time over boost::variant but for at least gcc-4.3.2 this
is untrue. There are several places in which I use boost::variant and even
with binary visitation the compilation time is barely unnoticable.

To work around this problem, I tried to explicitly instantiate the functions
generated for my any_image_view. Trying this technique with apply_operation
and detail::destructor_op failed. Looking at nm's output told me that what I
explicitly instantiated and what the binary needs had at least its
mpl::vector elements reversed.

So, I basically have two questions:
1) Wouldn't it be nicer to use boost::variant for gil</description>
    <dc:creator>Philipp Reh</dc:creator>
    <dc:date>2008-10-04T12:42:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180750">
    <title>Like to submit timeseries related functions</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180750</link>
    <description>Hi,
As part of Graduate program I have developed following useful functions that I like to submit to boost as a seperate library or part of math library -
notable functions in my lists are,
1. ARBurg - Auto regressive coefficients using Burg's algorithm
2. ARCeps - Cepstrum coefficeint from Auto-regressive coefficients
3. 1-D filter function
4. 1-D convolution function
5. Moving - Average filter
6. Polynomial Fitting
7. Polynomial Value from Polynomial Coefficients

Regards

 Syed Mamun Raihan
647.278.9083
_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>S. Mamun Raihan</dc:creator>
    <dc:date>2008-10-04T01:46:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180747">
    <title>[phoenix] local_reference problems</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180747</link>
    <description>AMDG

The following code does not compile because phoenix tries to
call the % operator with the types:

boost::phoenix::detail::local_reference&lt;boost::format&gt; % int

What is the rationale for local_reference?

#include &lt;boost/spirit/home/phoenix/operator.hpp&gt;
#include &lt;boost/spirit/home/phoenix/core.hpp&gt;
#include &lt;boost/spirit/home/phoenix/scope.hpp&gt;

#include &lt;boost/format.hpp&gt;

#include &lt;algorithm&gt;
#include &lt;vector&gt;

using namespace boost::phoenix::arg_names;
using namespace boost::phoenix::local_names;
using namespace boost::phoenix;

int main() {
    std::vector&lt;int&gt; values(10);
    std::for_each(values.begin(), values.end(),
        let(_f = boost::format("value is %d = %d\n")) [
            std::cout &lt;&lt; _f % _1 % _1
        ]
    );
}

C:\boost\trunk\boost/spirit/home/phoenix/operator/arithmetic.hpp(78) : 
error C2676: binary '%' : 'const 
boost::phoenix::detail::local_reference&lt;T&gt;' does not define this 
operator or a conversion to a type acceptable to the predefined operator
        with
        [
   </description>
    <dc:creator>Steven Watanabe</dc:creator>
    <dc:date>2008-10-03T23:53:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180743">
    <title>[thread_safe_signals] making the connection accesible fromslot</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180743</link>
    <description>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm curious if anyone has a good idea on how to make a slot's connection 
easily accesible to it when it is running.  A common case is a slot blocks 
it's own connection to avoid infinite recursion when it is about to do 
something that will cause its signal to be invoked again.  The problem is, 
for a slot to block its own connection, it needs access to a connection 
object.  But it is a pain in a multi-threaded situation to pass the 
connection to the slot, since the connection is not available until after the 
slot has already been connected to the signal.

In a single-threaded program, you can do something like:

namespace bs2 = boost::signals2

bs2::signal&lt;void (void)&gt; sig;
void myslot(boost::shared_ptr&lt;bs2::connection&gt; conn);
boost::shared_ptr&lt;bs2::connection&gt; conn(new bs2::connection);
*conn = sig.connect(boost::bind(&amp;myslot, conn));

void myslot(boost::shared_ptr&lt;bs2::connection&gt; conn)
{
//...
{
bs2::shared_connection_block blocker(*conn);
//...
}
</description>
    <dc:creator>Frank Mori Hess</dc:creator>
    <dc:date>2008-10-03T21:19:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180727">
    <title>is_range metafunction</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180727</link>
    <description>I could use one to enable a range constructor only where appropriate:

class X {
  template&lt;typename range_t&gt;
  X (range_t const&amp;, enable_if&lt;is_range&lt;range_t&gt; &gt;::type *dummy=0)

Question is, what might 'is_range' look like?

_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Neal Becker</dc:creator>
    <dc:date>2008-10-03T17:12:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180720">
    <title>RFC: Integrating Boost.Process and Boost.Asio</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180720</link>
    <description>I'm looking for ideas how to integrate Boost.Process and Boost.Asio. As of  
today it is possible to use asynchronous I/O with Boost.Process. However  
you have to pass around low-level file descriptors/HANDLEs like this:

bp::child c = start_child();
bp::pistream &amp;is = c.get_stdout();
#if defined(BOOST_POSIX_API)
ba::posix::stream_descriptor in(io_service);
#elif defined(BOOST_WINDOWS_API)
ba::windows::stream_handle in(io_service);
#endif
in.assign(is.handle().release());
is.async_read_some(...);

It would be nice if you could write:

bp::child c = start_child();
bp::pistream &amp;is = c.get_stdout();
is.async_read_some(...);

The first question is then where to pass the io_service instance to  
Boost.Process? In Boost.Asio I/O objects are typically initialized with  
io_service. As both child and pistream are created in the library  
io_service would need to be passed to Boost.Process when the child is  
spawned. However developers who don't want to use asynchronous I/O really  
shouldn't create an io_service </description>
    <dc:creator>Boris</dc:creator>
    <dc:date>2008-10-03T15:07:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180715">
    <title>Subject: Re:  [shared_ptr] Where is the bug?</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180715</link>
    <description>Hi,

Well the bug is in the fact the when you allocated:
    B* b = new X();

You have allocated an int extra, thus when you call:
    delete b;

You are only destructing what was allocated by B, which cause a sizeof(int) bytes memory leak each time you do this.

Just use a virtual destructor on virtual ~B() ... and that would take care of it all.


With best regards

Kasra Nassiri


      
_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Kasra Nassiri(Math &amp; ComSci</dc:creator>
    <dc:date>2008-10-03T09:25:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180711">
    <title>[mp_math_v02] Bug in assignment operator</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180711</link>
    <description>Hi,

Referring to the mp_math_v02 library in the Vault,
the assignment operator of class mp_int&lt;&gt; does not quite behave the way
it should. The following program

#include &lt;iostream&gt;
#include &lt;boost/mp_math/mp_int.hpp&gt;
using namespace std;
int main( int argc, char* argv[] )
{
   boost::mp_math::mp_int&lt;&gt; a, b(-1);
   a = -1;
   cout &lt;&lt; a &lt;&lt; " == "  &lt;&lt; b &lt;&lt; endl;
   return 0;
}

produces the output
-4294967295 == -1

It seems that the constructor code behaves as expected.
I'm using gcc 4.3.0 on x86 Fedora 9.


Cheers,
Mikko

_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>Mikko Vainio</dc:creator>
    <dc:date>2008-10-03T06:57:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180710">
    <title>[shared_ptr] Where is the bug?</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180710</link>
    <description>Hi,

I have the following program with the following output

#include &lt;iostream&gt;
#include &lt;boost/shared_ptr.hpp&gt;
using namespace boost;
struct B {
    ~B() {
        std::cout &lt;&lt; "~B" &lt;&lt; std::endl;
    };
};
struct X : B {
    ~X() {
        std::cout &lt;&lt; "~X" &lt;&lt; std::endl;
    };
    int i;
};

int main () {
    shared_ptr&lt;B&gt;* ptr=0;
    {
        shared_ptr&lt;X&gt; ptrX1(new X());
        ptr = new shared_ptr&lt;B&gt;(ptrX1);
    }
    std::cout &lt;&lt; "BEFORE" &lt;&lt; std::endl;
    delete ptr;
    std::cout &lt;&lt; "AFTER" &lt;&lt; std::endl;
    B* b = new X();
    std::cout &lt;&lt; "BEFORE" &lt;&lt; std::endl;
    delete b;
    std::cout &lt;&lt; "AFTER" &lt;&lt; std::endl;
    return 0;
}

BEFORE
~X
~B
AFTER
BEFORE
~B
AFTER
 
EXIT STATUS: 0 

Where is the bug?

Vicente

P.S. I'm using g++ (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)


_______________________________________________
Unsubscribe &amp; other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

</description>
    <dc:creator>vicente.botet</dc:creator>
    <dc:date>2008-10-03T06:26:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lib.boost.devel/180706">
    <title>[shared_ptr] towards a static_cast applied to smart_ptr</title>
    <link>http://comments.gmane.org/gmane.comp.lib.boost.devel/180706</link>
    <description>Hello Peter,

the following simplified example do not compile when DONT_NOT_COMPILE is 
defined.

#include &lt;boost/shared_ptr.hpp&gt;
using namespace boost;

struct X {
    int i;
};

int main () {
    shared_ptr&lt;X&gt; ptrX1(new X());
    shared_ptr&lt;void&gt; ptr_void(ptrX1);
#if DONT_NOT_COMPILE
    shared_ptr&lt;X&gt; ptrX2(ptr_void);
#endif
    return 0;
}

test_thread_shared_ptr.cpp: In function `int main()':
test_thread_shared_ptr.cpp:37: error: no matching function for call to 
`boost::s
hared_ptr&lt;X&gt;::shared_ptr(boost::shared_ptr&lt;void&gt;&amp;)'
../../../boost/shared_ptr.hpp:154: note: candidates are: 
boost::shared_ptr&lt;X&gt;::s
hared_ptr(const boost::shared_ptr&lt;X&gt;&amp;)
../../../boost/shared_ptr.hpp:241: note:  boost::shared_ptr&lt; 
&lt;template-parameter
-1-1&gt; &gt;::shared_ptr(const boost::detail::shared_count&amp;, T*) [with T = X]
../../../boost/shared_ptr.hpp:167: note:  boost::shared_ptr&lt; 
&lt;template-parameter
-1-1&gt; &gt;::shared_ptr() [with T = X]

This is normal as void* is not convertibel to X*. But in my program I can 
ensure that the poin</description>
    <dc:creator>vicente.botet</dc:creator>
    <dc:date>2008-10-03T05:41:43</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.lib.boost.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lib.boost.devel</link>
  </textinput>
</rdf:RDF>
