Index: third_party/mojo/src/mojo/public/cpp/bindings/lib/template_util.h |
diff --git a/third_party/mojo/src/mojo/public/cpp/bindings/lib/template_util.h b/third_party/mojo/src/mojo/public/cpp/bindings/lib/template_util.h |
index c221a545337d7a7c073a9d49857198d1ef2a0a2d..2edbf5c532e542329917824fcb714e106b1323b0 100644 |
--- a/third_party/mojo/src/mojo/public/cpp/bindings/lib/template_util.h |
+++ b/third_party/mojo/src/mojo/public/cpp/bindings/lib/template_util.h |
@@ -60,11 +60,13 @@ struct IsMoveOnlyType { |
sizeof(Test<T>(0)) == sizeof(YesType) && !IsConst<T>::value; |
}; |
+// Returns a reference to |t| when T is not a move-only type. |
template <typename T> |
typename EnableIf<!IsMoveOnlyType<T>::value, T>::type& Forward(T& t) { |
return t; |
} |
+// Returns the result of t.Pass() when T is a move-only type. |
template <typename T> |
typename EnableIf<IsMoveOnlyType<T>::value, T>::type Forward(T& t) { |
return t.Pass(); |