Hi all,

Following <http://trac.webkit.org/changeset/170774>, please use WTF::move()
instead of std::move(). I substituted WTF::move() for std::move() in all
code to date. WTF::move() is a replacement for std::move() that is less
error prone to use.

Depending on std::move() to lead to a move operation has led to bugs in
some contexts, including <https://bugs.webkit.org/show_bug.cgi?id=134304>
and <http://trac.webkit.org/changeset/170594>. In particular, assigning the
result of std::move() that is passed a const value will lead to a copy
operation (*). For comparison, WTF::move() compile asserts that its
argument is a non-const lvalue reference (**). So, passing a const value to
WTF::move() will cause a compile-time error. This behavior prevents
introducing such bugs and catches unnecessary calls to move() with an
rvalue (as such calls are no-ops).

If you encounter issues using WTF::move() or have suggestions for
improvement then please file a bug and CC me.

Have a happy Fourth of July weekend!

Dan

(*) I'm disregarding functions with nonsensical signatures and behavior,
such as a move assignment operator taking a const rvalue reference.

(**) A person must still ensure that using WTF::move() is necessary at each
call site. That is, that the usage of WTF::move() leads to a move operation
as opposed to a copy operation.
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to