I agree that VA is doing something wrong here, but I am not sure what VA should be going on here.
Using VS2017 and Unreal Engine 4.22.3 I have created a simple Flying game, and added a C++ Actor class to the game. I have added these functions to the class, and then tried various combinations, to see what will and will not compile. For me, neither function will compile when given either a normal function body, or an _Implementation() function body.
The full code that I have ended up with, with comments explaining what I am seeing, is this:
UCLASS()
class FLYING_4_22_3_API AFelineActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AFelineActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
// no body, compiles just fine
UFUNCTION(BlueprintImplementableEvent)
void OkaySoThisWorks();
// this does NOT compile, because the function already has a body
UFUNCTION(BlueprintImplementableEvent)
void OkaySoThisWorksInline() { int nLocalOne = 2; }
UFUNCTION(BlueprintImplementableEvent)
void OkaySoThisWorksRenamed();
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category = "TimeManager")
void ButWhyWontThisWork();
// this does NOT compile, because the function already has a body
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category = "TimeManager")
void ButWhyWontThisWorkInline() { int nLocalThree = 2; }
UFUNCTION(BlueprintCallable, BlueprintImplementableEvent, Category = "TimeManager")
void ButWhyWontThisWorkRenamed();
};
// this does NOT compile, this is not a member of the class
void AFelineActor::OkaySoThisWorksRenamed_Implementation() { int nLocalTwo = 2; }
// this does NOT compile, this is not a member of the class
void AFelineActor::ButWhyWontThisWorkRenamed_Implementation() { int nLocalFour = 2; }
which makes a degree of sense, given what this page says about BlueprintImplementableEvent, which is that "The function can be implemented in a Blueprint or Level Blueprint graph."
https://docs.unrealengine.com/en-US/Programming/UnrealArchitecture/Reference/Functions/Specifiers/index.html