Some confusion of UObject*, UPROPERTY decorator, and UWeakObjectPtr

IsValid(B::b) is undefined behavior, I think. I haven’t tested and in practice it may often (nearly always?) return false, but that’s a dangling pointer.