On Wednesday, 6 November 2013 at 11:04:05 UTC, bearophile wrote:
import std.typecons: Typedef; alias Foo = Typedef!double; void main() { auto a1 = Foo(1); pragma(msg, typeof(a1)); auto a2 = 1.Foo; pragma(msg, typeof(a2)); auto a3 = Foo(-1); pragma(msg, typeof(a3)); auto a4 = -1.Foo; pragma(msg, typeof(a4)); }It prints: Typedef!(double, nan) Typedef!(double, nan) Typedef!(double, nan) double Is this expected/acceptable/good?
Operator precedence of "." is higher than unary minus. That should be the explanation, why the fourth output is different than the others.
However, what is Typedef for?
