<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 class="">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><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 class="gmail_extra"><br></div><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>