/**
* Creates a CFNumber object using a specified value.
*
* References are owned if created by functions including "Create" or "Copy"
* and must be released with {@link #CFRelease} to avoid leaking references.
*
* The type of number pointed to by the {@code valuePtr} is specified by
* {@code theType}. The {@code theType} parameter is not necessarily
* preserved when creating a new {@code CFNumber} object. The
* {@code CFNumber} object will be created using whatever internal storage
* type the creation function deems appropriate. Use the function
* {@link #CFNumberGetType} to find out what type the {@code CFNumber}
* object used to store your value.
*
* If {@code theType} is a floating point type and the value represents one
* of the infinities or {@code NaN},