I was using the Async/Future/Promise-Features and found a bug in the Promise implementation. The Move Assignment Operators of TPromise[ResultType]
and TPromise[ResultType&]
are returning an incorrect type. They return this
instead of *this
(see the engine source).
This results in an error (bool example):
CompilerResultsLog:Error: Error D:\Tools\UnrealEngine\UE_4.16\Engine\Source\Runtime\Core\Public\Async\Future.h(897) : error C2440: 'return': cannot convert from 'TPromise<bool> *const ' to 'TPromise<bool> &'
The Move Assignment Operators of the other classes (including TPromise[void]
) are correctly returning *this
.