UPROPERTY (As all U macros) support only types that UE4 reflection system does and it not support standard library C++ types, only types in UE4. But you can still use it as you wish but without reflection (remove property). Alternative for what you trying to do is delegates as balazon mentioned.
You could add support for this type, but then hou would need to modify UnrealHeaderTool and code UField for it, as well as whole UI supportin editor. It would be better if you implement this as UE4 type too, so any game code would not refere to C++ standard library.