Looks like CL-3215392 added changes in FArchive where the operator<< method for bool is a member operator in Editor (as opposed to a global operator in non-editor and old builds).
This causes shadowing issues so subclasses that implement additional operator<< methods, or override existing ones will break compilation.
Some classes (like FMemoryArchive) get around this with `using FArchive::<<`.
Should probably investigate to see all the classes this could affect.
static void Test() { TArray<uint8> ObjectBytes; FMemoryWriter MemoryWriter(ObjectBytes, true); FObjectAndNameAsStringProxyArchive test(MemoryWriter, false); bool testBool = false; test << testBool; }
Expected: The compile succeeds.
Actual: The compile fails with: `error C2679: binary '<<': no operator found which takes a right-hand operand of type 'bool' (or there is no acceptable conversion)`
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-42052 in the post.
2 |
Component | UE - Foundation - Core |
---|---|
Affects Versions | 4.15 |
Target Fix | 4.16 |
Fix Commit | 3309231 |
---|---|
Main Commit | 3315211 |
Created | Feb 16, 2017 |
---|---|
Resolved | Feb 17, 2017 |
Updated | Apr 27, 2018 |