PropertyType
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 17 07:24:09 PDT 2016
I have this little helper in my iopipe library:
template PropertyType(alias x)
{
static if(is(typeof(x) == function))
alias PropertyType = typeof(x());
else
alias PropertyType = typeof(x);
}
This is because when you have code like this:
x.foo
And you are introspecting some type, you can't tell whether this is a
property function or a field.
If foo is a field, or a function marked as a @property, then
typeof(x.foo) will be whatever x.foo returns. But if foo is a straight
function, then typeof(x.foo) will be a function type.
As we all know, @property is not exactly popular, and having to mark
functions @property just for introspection purposes (applying the tag
actually has zero impact otherwise) seems incorrect.
But of course, if I want to know what type the expression x.foo will
yield, I have to do the above.
Is there a use for this in Phobos? Is it already present somewhere?
Where should it go if it's not there already?
-Steve
More information about the Digitalmars-d
mailing list