I'm making an interface with the following source code:
However UHT seems to ignore the const and generates the following internal code in the .generated files. I normally never look at this but this results in my code not compiling.
Code:
#pragma once #include "WRTeamInterface.generated.h" UINTERFACE(BlueprintType) class UWRTeamInterface : public UInterface { GENERATED_UINTERFACE_BODY() }; class WRAITH_API IWRTeamInterface { GENERATED_IINTERFACE_BODY() UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Team") bool IsFriendlyToAll() const; //This fails--------------------------------- UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Team") bool IsFriendlyToTeam(const TScriptInterface<const IWRTeamInterface>& Team) const; UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Team") uint8 GetTeam() const; };
Code:
bool IWRTeamInterface::IsFriendlyToTeam(TScriptInterface<IWRTeamInterface> const& Team) const { check(0 && "Do not directly call Event functions in Interfaces. Call Execute_IsFriendlyToTeam instead."); WRTeamInterface_eventIsFriendlyToTeam_Parms Parms; return Parms.ReturnValue; }
Code:
2>F:\Code\UnrealEngineProj\Wraith\Intermediate\Build\Win64\UE4Editor\Inc\Wraith\Wraith.generated.1.cpp(3290): error C2511: 'bool IWRTeamInterface::IsFriendlyToTeam(const TScriptInterface<IWRTeamInterface> &) const': overloaded member function not found in 'IWRTeamInterface' 2> F:\Code\UnrealEngineProj\Wraith\Source\Wraith\Public/Gameplay/WRTeamInterface.h(12): note: see declaration of 'IWRTeamInterface'
Comment