A change has been done to the TSoftObjectPtr class that warns when constructing a pointer-to non-const from a pointer-to-const. This change makes sense and is correct.
Example:
UTexture2D* LoadedTexture = LoadObject<UTexture2D>(nullptr, TEXT("/Game/Textures/MyTexture.MyTexture"));
TSoftObjectPtr<const UTexture2D> ConstTexturePtr = LoadedTexture;
// Warning occurs here
TSoftObjectPtr<UTexture2D> NonConstTexturePtr = ConstTexturePtr;
The issue comes when a TSoftObjectPtr<const type> is used inside a DynamicDelegate. The delegate would strip the const from the declaration.
This warning was done in 5.5, so it is a regression.
1- Create a C++ Unreal 5.5 project
2- Create any Unreal class, Object/Actor for example, and create a Dynamic delegate with a TSoftObjectPtr pointing to a const type as a parameter. Example:
DECLARE_DYNAMIC_DELEGATE_OneParam(FExampleDelegate, TSoftObjectPtr<const UObject>, Object);
3- Create a variable inside the class of the dynamic delegate type and compile. The following warning will appear:
Warning C4996 : 'TSoftObjectPtr<UObject>::TSoftObjectPtr': Constructing TSoftObjectPtr from an incompatible pointer type has been deprecated. Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
How does TextureRenderTarget2D get TArray<uint8> type data?
How do I set a material as a post-processing material?
Why does the REMOVE method of map container remove elements have memory leaks?
How to delete some elements correctly when deleting an array loop?
What is the cause of the packaging error falling back to 'GameUserSettings' in ue5?
UMG RichText not appear image when packaged
What is the difference between Camera and CineCamera?
How does TArray loop correctly remove elements in blueprints?
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-239493 in the post.
1 |
Component | UE - Foundation - Cpp Tools - UnrealHeaderTool |
---|---|
Affects Versions | 5.5 |
Target Fix | 5.6 |
Created | Jan 21, 2025 |
---|---|
Updated | Jan 29, 2025 |