<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 2, 2014 at 2:43 AM, Anton Yartsev <span dir="ltr"><<a href="mailto:anton.yartsev@gmail.com" target="_blank">anton.yartsev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>Thanks for the feedback!<br>
</div><span class="">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Oct 1, 2014 at 3:36 PM, David
Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Wed, Oct 1, 2014 at 3:14 PM, Anton Yartsev <span dir="ltr"><<a href="mailto:anton.yartsev@gmail.com" target="_blank">anton.yartsev@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>Ping!<span><br>
</span><br>
Suggested is a wrapper over a raw pointer that is
intended for freeing wrapped memory at the end of
wrappers lifetime if ownership of a raw pointer
was not taken away during the lifetime of the
wrapper. <br>
The main difference from unique_ptr is an ability
to access the wrapped pointer after the ownership
is transferred.<br>
To make the ownership clearer the wrapper is
designed for local-scope usage only.<br>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>I'm still concerned this isn't the right direction,
and that we instead want a more formal "maybe owning
pointer". The specific use case you've designed for
here, in my experience, doesn't seem to come up often
enough to justify a custom ADT - but the more general
tool of sometimes-owning smart pointer seems common
enough (& problematic enough) to warrant a generic
data structure (and such a structure would also be
appliable to the TGParser use case where this came up).<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote></span>
David, could you, please, clarify the concept of the "maybe owning
pointer"?</div></blockquote><div><br></div><div>See my reply to Chandler with a list of classes that hold {T*, bool} members where the bool indicates whether the T* needs to be deleted or not. My original goal here was to provide an API to make those more robust (more precisely: to remove the need to call "release()" and allow us to stay in a clear(er) owning domain).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF"><span class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
I'd love to hear some more opinions, but maybe we're not
going to get them... </div>
</blockquote>
</div>
<br>
I strongly agree that the example here isn't compelling.</div>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">I think it is a very fundamental design
problem when there is a need for a pointer value after it has
been deallocated...</div>
</div>
</blockquote></span>
Not deallocated but stored to the long-living storage. I agree, the
problem is in design, the suggested wrapper is an intermediate
solution, it was just designed to replace the existing ugly fixes.<span class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">I even question whether we need a
"maybe owning" smart pointer, or whether this is just an
indication that the underlying data structure is *wrong*. The
idea of "maybe" and "owning" going to gether, in any sense,
seems flat out broken to me from a design perspective, and so
I'm not enthused about providing abstractions that make it
easier to build systems with unclear ownership semantics.</div>
</div>
</blockquote>
<br>
</span><span class="HOEnZb"><font color="#888888"><pre cols="72">--
Anton</pre>
</font></span></div>
</blockquote></div><br></div></div>