Macros
The macros such as DECLARE_MULTICAST_DELEGATE_XXX and DECLARE_EVENT.
DECLARE_EVENT is considered as deprecated.
All what DECLARE_MULTICAST_DELEGATE_XXX really do is creating a typedef with your delegate name and params (typedef TMulticastDelegate<ReturnType(Params)> MulticastDelegateName;). Note that ReturnType is always void.
Example:
// delegate declaration with macro
DECLARE_MULTICAST_DELEGATE_OneParam(FPTAOnEquipmentSlotAddedSignature, UPTAEquipmentSlot* /* NewSlot */)
// the real generated code
typedef TMulticastDelegate<void(UPTAEquipmentSlot*)> FPTAOnEquipmentSlotAddedSignature;
TMulticastDelegate
The default UserPolicy is FDefaultDelegateUserPolicy.