Is it safe to store AActor without UPROPERTY?

What do you think about consider the code bellow:

////////////////////////////////////////////////////
// .h
UPROPERTY()
TArray<TWeakObjectPtr<AActor>> ControlledActorsInside;

UFUNCTION(BlueprintCallable)
void StartSelectionRealTime(UPARAM(ref) TArray<AActor*>& ControlledActors);

////////////////////////////////////////////////////
// .cpp
void UYourCoolComponent::StartSelectionRealTime(TArray<AActor*>& ControlledActors)
{
    ControlledActorsInside.Empty();

    for (AActor* Actor : ControlledActors)
    {
        if (IsValid(Actor))
        {
            ControlledActorsInside.Add(Actor);
        }
    }

// your remaing code goes here...
}

I think we need more heads on this :stuck_out_tongue: