| Index: include/private/SkFunction.h
|
| diff --git a/include/private/SkFunction.h b/include/private/SkFunction.h
|
| index 8e41cba929a08b4303247f5f1b51474ae2244d66..024ba7c9b2b15bd899587801a6723b9b07b189ac 100644
|
| --- a/include/private/SkFunction.h
|
| +++ b/include/private/SkFunction.h
|
| @@ -35,13 +35,10 @@ public:
|
|
|
| R operator()(Args... args) const {
|
| SkASSERT(fFunction.get());
|
| - return fFunction->call(Forward(args)...);
|
| + return fFunction->call(skstd::forward<Args>(args)...);
|
| }
|
|
|
| private:
|
| - // ~= std::forward. This moves its argument if possible, falling back to a copy if not.
|
| - template <typename T> static T&& Forward(T& v) { return (T&&)v; }
|
| -
|
| struct Interface {
|
| virtual ~Interface() {}
|
| virtual R call(Args...) const = 0;
|
| @@ -53,7 +50,7 @@ private:
|
| public:
|
| LambdaImpl(const Fn& fn) : fFn(fn) {}
|
|
|
| - R call(Args... args) const override { return fFn(Forward(args)...); }
|
| + R call(Args... args) const override { return fFn(skstd::forward<Args>(args)...); }
|
| Interface* clone() const override { return SkNEW_ARGS(LambdaImpl<Fn>, (fFn)); }
|
| private:
|
| Fn fFn;
|
| @@ -63,7 +60,7 @@ private:
|
| public:
|
| FnPtrImpl(R (*fn)(Args...)) : fFn(fn) {}
|
|
|
| - R call(Args... args) const override { return fFn(Forward(args)...); }
|
| + R call(Args... args) const override { return fFn(skstd::forward<Args>(args)...); }
|
| Interface* clone() const override { return SkNEW_ARGS(FnPtrImpl, (fFn)); }
|
| private:
|
| R (*fFn)(Args...);
|
|
|