/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Public/Abilities/GameplayAbility_CharacterJump.h
Canceling an non instanced ability is tricky. Right now this works for Jump since there is nothing that can go wrong by calling StopJumping() if you aren't already jumping. If we had a montage playing non instanced ability, it would need to make sure the Montage thatitplayed was still playing, and if so, to cancel it. If this is something we need to support, we may need some light weight data structure to represent 'non intanced abilities in action' with a way to cancel/end them.
virtual void CancelAbility ( const [FGameplayAbilitySpecHandle](API\Plugins\GameplayAbilities\FGameplayAbilitySpecHandle) Handle, const [FGameplayAbilityActorInfo](API\Plugins\GameplayAbilities\Abilities\FGameplayAbilityActorInfo) * ActorInfo, const [FGameplayAbilityActivationInfo](API\Plugins\GameplayAbilities\FGameplayAbilityActivationInfo) ActivationInfo, bool bReplicateCancelAbility )