TSharedRef:
static_assert(!TPointerIsConvertibleFromTo<ObjectType, const UObjectBase>::Value, "You cannot use TSharedRef with UObjects.");
TShadredPtr:
static_assert(!TPointerIsConvertibleFromTo<ObjectType, const UObjectBase>::Value, "You cannot use TSharedPtr or TWeakPtr with UObjects. Consider a UPROPERTY() pointer or TWeakObjectPtr.");TWeakPtr倒是没有类似的静态断言,因为UObject可以通过UPROPERTY实现垃圾回收,所以不能也没有必要再被智能指针封装。