Differing part:
 FNaNb  xdZ d6
PFNaNbNfxdZxd6

P -> pointer
Nf -> @safe
x -> const

The second one is a function pointer not a function, is inferred to be 
@safe, and inferred to return const(double).


"bearophile" <[email protected]> wrote in message 
news:[email protected]...
> I'm asking questions all the time :-)
>
> I have just closed this bug report as fixed:
> http://d.puremagic.com/issues/show_bug.cgi?id=5695
>
> Using that idiom I've seen a difference:
>
>
> 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).
>
> Bye and thank you,
> bearophile 


Reply via email to