[webkit-dev] Watch out for std::optional's move constructor

Alex Christensen achristensen at apple.com
Mon Dec 17 10:27:31 PST 2018

>>>> On Dec 14, 2018, at 1:37 PM, Chris Dumez <cdumez at apple.com <mailto:cdumez at apple.com>> wrote:
>>>> As far as I know, our convention in WebKit so far for our types has been that types getting moved-out are left in a valid “empty” state.
This is not necessarily true.  When we move out of an object to pass into a function parameter, for example, the state of the moved-from object depends on the behavior of the callee.  If the callee function uses the object, we often have behavior that leaves the object in an “empty” state of some kind, but we are definitely relying on fragile undefined behavior when we do so because changing the callee to not use the parameter changes the state of the caller.  We should never assume that WTFMove or std::move leaves the object in an empty state.  That is always a bug that needs to be replaced by std::exchange.

> On Dec 14, 2018, at 3:20 PM, youenn fablet <youennf at gmail.com> wrote:
> Is it too late to ask for a std::optional change?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20181217/c4b07fd1/attachment.html>

More information about the webkit-dev mailing list