Commit e14cd5e1 authored by Alex Landau's avatar Alex Landau Committed by Sara Golemon

Fix passing MoveWrapper into lambdas

Summary:
GCC can't compile code that passes a MoveWrapper into a lambda
in some cases. For example if the capture list has
[someConstObject, myMoveWrapper], gcc 4.7 fails. This specific case
works with gcc 4.8, but other cases (e.g. [this, myMoveWrapper]) still
fail.

This diff is a hack that makes code like that compile. It can be
removed, along with MoveWrapper itself once we move to C++14 with its
extended lambda syntax.

Test Plan: fbmake

Reviewed By: hans@fb.com

FB internal diff: D1032585
parent c21eba0d
......@@ -43,7 +43,7 @@ class MoveWrapper {
MoveWrapper(T&& t) : value(std::move(t)) {}
/// copy is move
MoveWrapper(MoveWrapper& other) : value(std::move(other.value)) {}
MoveWrapper(const MoveWrapper& other) : value(std::move(other.value)) {}
/// move is also move
MoveWrapper(MoveWrapper&& other) : value(std::move(other.value)) {}
......@@ -60,7 +60,7 @@ class MoveWrapper {
MoveWrapper& operator=(MoveWrapper&&) = delete;
private:
T value;
mutable T value;
};
template <class T>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment