The problem is simple. In a recent commit for TArray, a copy constructor got added in the new `ForAnyElementType` type, and this copy constructor is not defined. Meaning anything using it will break.
The problem is the emission of TArray<T>::PadToNum and other items that will force usage of the new undefined copy constructor.
The fix is : Do not have a pattern where you do a class MYMODULE_API FMyClass : public TArray<Something>, or else, it will force the definition of TArray<T>::PadToNum and other elements requiring the copy constructor, and it will add a linking error.
I am providing this here mostly for visibility, as it’s REALLY HARD to figure out that issue with nondescript linking errors pointing to the same, with no guidance from “used in …” (thanks, Visual Studio Linker).
If you ever need to figure it out in a huge module, a trick is to use the dreaded bPreprocessOnly = true; in your Target, compile one of your linked error file (ONLY ONE FILE!), remove the target flag (because lord forbid you compile an entire project with this), and then use the generated intermediate .i file to search for TArray, and figure out what you might be doing wrong in your code. Good luck, you’ll need it!