Re: How can I check if a type is a pointer?

2022-06-25 Thread rempas via Digitalmars-d-learn
On Saturday, 25 June 2022 at 14:51:49 UTC, Paul Backus wrote: Use an [`is()` expression:][1] ```d if (is(typeof(accepted_type) == T*, T)) { // it's a pointer } ``` In English, you read this as "if `typeof(accepted_type)` matches the pattern `T*`, where `T` is a type." If you want to lea

Re: How can I check if a type is a pointer?

2022-06-25 Thread Paul Backus via Digitalmars-d-learn
On Saturday, 25 June 2022 at 14:18:10 UTC, rempas wrote: For example, something like the following: ```d void main() { char accepted_type; char* non_accepted_type; if (__traits(isPointer, typeof(accepted_type))) { // The type is not accepted } ``` Use an [`is()` expression:][1] `

Re: How can I check if a type is a pointer?

2022-06-25 Thread rempas via Digitalmars-d-learn
On Saturday, 25 June 2022 at 14:32:27 UTC, Ola Fosheim Grøstad wrote: I guess you can look at the source code for https://dlang.org/phobos/std_traits.html#isPointer Thank you! Nice and quick ;) For anyone interested, here's the source code: ```d enum bool isPointer(T) = is(T == U*, U) && __

Re: How can I check if a type is a pointer?

2022-06-25 Thread Ola Fosheim Grøstad via Digitalmars-d-learn
On Saturday, 25 June 2022 at 14:18:10 UTC, rempas wrote: In that example, the first comparison will execute the second branch and for the second comparison, it will execute the first branch. Of course, this trait doesn't exist I used an example to show what I want to do. Any ideas? I guess yo

How can I check if a type is a pointer?

2022-06-25 Thread rempas via Digitalmars-d-learn
For example, something like the following: ```d void main() { char accepted_type; char* non_accepted_type; if (__traits(isPointer, typeof(accepted_type))) { // The type is not accepted } else { /* The type is not a pointer so its accepted */ } if (__traits(isPointer, typeof(non_