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.

Reply via email to