Thread overview | |||||
---|---|---|---|---|---|
|
August 14, 2007 Suggesting an addition to std.traits for arrays and pointers | ||||
---|---|---|---|---|
| ||||
I think these two simple templates could be added to std.traits. Afaik there is no way around defining templates for this: /*** * Get the referenced type of an array. * Example: * --- * import std.traits; * int[] foo; * ValueType!(foo) x; // x is declared as int * --- */ template ValueType(T : T*) { alias T ValueType; } /*** * Get the referenced type of an pointer. * Example: * --- * import std.traits; * int* foo; * ValueType!(foo) x; // x is declared as int * --- */ template ValueType(T : T[]) { alias T ValueType; } |
August 14, 2007 Re: Suggesting an addition to std.traits for arrays and pointers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Markus Dangl | Sorry wrong newsgroup. But - since ready-to-use code is included - this might not be so totally wrong. |
August 14, 2007 Re: Suggesting an addition to std.traits for arrays and pointers | ||||
---|---|---|---|---|
| ||||
Posted in reply to Markus Dangl | Markus Dangl Wrote:
> I think these two simple templates could be added to std.traits. Afaik there is no way around defining templates for this:
>
> /***
> * Get the referenced type of an array.
> * Example:
> * ---
> * import std.traits;
> * int[] foo;
> * ValueType!(foo) x; // x is declared as int
> * ---
> */
> template ValueType(T : T*)
> {
> alias T ValueType;
> }
>
> /***
> * Get the referenced type of an pointer.
> * Example:
> * ---
> * import std.traits;
> * int* foo;
> * ValueType!(foo) x; // x is declared as int
> * ---
> */
> template ValueType(T : T[])
> {
> alias T ValueType;
> }
I think you mixed the comments up :)
|
Copyright © 1999-2021 by the D Language Foundation