@Beria
I usually have included a macro for that to ease translating from C(++), but indeed they are already there under a _t less name
with the same meaning.OTOH there are * a lot * more places in the rtl where type aliases are defined or even redefined, so it is not an unreasonable request.
Actually, I support that, as long as you understand that they are already there under a different name.
@Khrys
void* or void * is a bit difficult to have a straight type translation because it is opaque by nature.
E.g. It can mean just an opaque pointer type or procedure. Quite different beasts. There is an alias for the first in system: POpaqueData and TOpaqueData. POpaqueData is a data, function or procedure pointer to be explicitly defined, something that can only be done in C by using a macro or a cast, e.g:
void (*callback)(int);
void* p = (void*)callback;
void* go_write_hello();
Pascal's type safety requires that the function/procedure ( pointer ) is of a known type.
type
PProcInt = ^TProcInt;
TProcInt = procedure(i: Integer);
PFuncInt = ^TFuncInt;
TFuncInt = function(i: Integer): Integer;
Where you can take the typed pointer for callbacks in a type safe way.
Of course, if typed pointers are on you can use @ instead of P.