<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">That’s exactly why observer_ptr <b class="">should not*</b> be implemented as alias to a raw pointer; the main difference is that constructor from T* is <b class="">explicit</b> and there’s no implicit cast from observer_ptr to unique_ptr, so your example will not compile =)<div class=""><br class=""></div><div class="">* well, the clang implementation I used forbids implicit cast, not sure how it will (if it ever will) be implemented in c++20</div><div><br class=""><blockquote type="cite" class=""><div class="">3 мая 2019 г., в 21:09, Konstantin Ritt <<a href="mailto:ritt.ks@gmail.com" class="">ritt.ks@gmail.com</a>> написал(а):</div><br class="Apple-interchange-newline"><div class=""><div dir="auto" class="">Ivan,<div dir="auto" class=""><br class=""></div><div dir="auto" class="">note that observer_ptr is mostly like</div><div dir="auto" class=""><br class=""></div><div dir="auto" class=""><pre style="margin-top:0px;margin-bottom:0.8em;padding:10px;border:0px;line-height:inherit;font-family:consolas,menlo,monaco,"lucida console","liberation mono","dejavu sans mono","bitstream vera sans mono","courier new",monospace;font-size:13px;vertical-align:baseline;color:rgb(57,51,24);background-color:rgb(240,240,240);max-height:300px" class=""><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:consolas,menlo,monaco,"lucida console","liberation mono","dejavu sans mono","bitstream vera sans mono","courier new",monospace;vertical-align:baseline;max-height:300px" class=""><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(16,16,148)" class="">template</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class=""><</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(16,16,148)" class="">typename</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class=""> T</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class="">></span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class="">
</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(16,16,148)" class="">using</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class=""> observer_ptr </span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class="">=</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class=""> T</span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class="">*;</span></code></pre></div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">so what about</div><div dir="auto" class=""><br class=""></div><div dir="auto" class=""><div dir="auto" style="font-family:sans-serif" class=""><pre style="margin-top:0px;margin-bottom:0.8em;padding:10px;border:0px;line-height:inherit;font-family:'consolas','menlo','monaco','lucida console','liberation mono','dejavu sans mono','bitstream vera sans mono','courier new',monospace;font-size:13px;vertical-align:baseline;color:rgb(57,51,24);background-color:rgb(240,240,240);max-height:300px" class=""><code style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:'consolas','menlo','monaco','lucida console','liberation mono','dejavu sans mono','bitstream vera sans mono','courier new',monospace;vertical-align:baseline;max-height:300px" class=""><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(16,16,148)" class=""><br class=""></span><span style="margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;color:rgb(48,51,54)" class="">layout2->addWidget(</span></code>layout->addWidget(make_unique<QPushButton>("right")))->setFlat(true);</pre></div></div><div dir="auto" class="">?</div><div dir="auto" class=""><br class=""></div><div dir="auto" class=""><br class="">Regards,<br class=""><div data-smartmail="gmail_signature" dir="auto" class="">Konstantin</div></div><br class=""></div></div></blockquote></div><br class=""></body></html>