How can I get the scalar type of a pointer to pointer (and in even deeper levels)
rempas
rempas at tutanota.com
Sat Mar 11 12:49:05 UTC 2023
Let's see the following code:
```d
void test_fn(T)(T val) {
pragma(msg, "The type of the pointer is: " ~
typeof(*val).stringof);
}
extern (C) void main() {
int* int_ptr = cast(int*)0x1037;
char* char_ptr = cast(char*)0x1037;
test_fn(int_ptr);
test_fn(char_ptr);
}
```
This function takes a templates argument that can be any
(pointer) type and shows the scalar type of the pointer (at
compile time). I'm using the "typeof" operator and I'm
referencing the pointer so I can get the scalar type. This will
work great for single pointer values but what about pointers to
pointers like: `int****`? Is there a way that I would be able to
always get the scalar type of a pointer regardless of how many
levels it is? As always, I'm searching for a solution that will
work in `BetterC`.
More information about the Digitalmars-d-learn
mailing list