On Saturday, 18 March 2017 at 00:36:21 UTC, Nicholas Wilson wrote:
On Friday, 17 March 2017 at 23:54:36 UTC, Hussien wrote:
I am using Parameters and ReturnType which give me the "name"
of the type used. e.g.,
int foo(SomeEnum)
will give SomeEnum and int for the type respectively.
What I need to do, is also get the D types that these use.
int is int, but SomeEnum is an enum.
Is there a traits function or some way to reduce the derived
type to it's most primitive D type?
A specific class should give "class", some enum should give
"enum", an interface "interface", a function should give
"function", etc.
Parameters!foo[0] == SomeEnum
SomeEnum == enum
if some enum is
SomeEnum : int
{
someValue
}
then
static assert (is(Parameters!foo[0] == T, T : int));
will pass.
I need the general solution. One that simply returns the type.
None of what you said helps...