only allow UTF16/32 conversion to pointers of appropriate types, consistent with UTF8