Unable to override simple C++ Function

I am attempting to rebase an existing blueprint to move some of it’s functionality into c++. So far I have successfully managed to do this with two event functions and they are working perfectly, however another function in the blueprint is causing me grief.

All of these three functions are defined within a BP Interface. The first two which are working take no parameters and are simply event trigger points. The function I am having issue with is simply returning the value of a bool. In the BP it works perfectly, but when I attempt to provide a skeleton for this in C++ I get the error:

“Cannot order parameters CurState_out in function GetCurState”

The C++ Header is :

UFUNCTION(BlueprintImplementableEvent, Category = "EnableDisable")
	void GetCurState(bool &CurState_out);

The C++ Body:

void AProspectPawn::GetCurState_Implementation(bool &CurState_out)

The Original BP is:


The variable there is the one in the BP itself rather than the C++ property I am moving towards, still things to do, but as I cannot even get the BP to compile I’ve not moved further.

Any help as to get past this error, there is only one return value, so I cannot see how any ordering would be needed.


It took a brief walk through the Blueprint compilers source, but it seems this error is caused by the variable name in the C++ Prototype not matching the one in the BP Interface.

From my quick read I think the reference to ordering is in relation to a randomly ordered list of properties that are generated during compilation needing to then be ordered to match (based on name) with the underlying class.