TypeTuple of functions

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Jan 26 10:48:37 PST 2012


On Thu, Jan 26, 2012 at 01:32:35PM -0500, bearophile wrote:
[...]
> template TypeTuple(TList...) {
>     alias TList TypeTuple;
> }
> 
> double f1(in double x) pure nothrow { return x; }
> alias TypeTuple!(f1) funcs1;
> 
> alias TypeTuple!(function(in double x) pure nothrow { return x; }) funcs2;
> 
> void main() {
>     pragma(msg, typeid(typeof(funcs1[0])).stringof); // &D18TypeInfo_FNaNbxdZd6__initZ
>     pragma(msg, typeid(typeof(funcs2[0])).stringof); // &D22TypeInfo_PFNaNbNfxdZxd6__initZ
> }
> 
> 
> Do you know what's the difference between those two functions? (I am not able to read mangled names).
[...]

You could just use:

	writeln(typeid(typeof(...)));

instead; it gives you readable names. I modified your code and ran it,
and got:

	double()
	const(double)()*


T

-- 
Computers are like a jungle: they have monitor lizards, rams, mice, c-moss, binary trees... and bugs.


More information about the Digitalmars-d-learn mailing list