Printing shortest decimal form of floating point number with Mir
Ola Fosheim Grøstad
ola.fosheim.grostad at gmail.com
Mon Jan 4 13:47:17 UTC 2021
On Monday, 4 January 2021 at 12:35:12 UTC, John Colvin wrote:
> What's the simplest example that doesn't work and is that
> simple example just indirection through an alias or is it
> actually indirection through a template that *when
> instantiated* turns out to be just an alias?
Indirection through a parametric alias. This is the simplest I
have come up with so far:
struct Foo(T) {}
alias Bar(T) = Foo!T;
void f(T)(Bar!T x) {}
void main() {
f(Bar!int());
}
I created a thread for it:
https://forum.dlang.org/post/nxrfrizqdmhzhivxptsb@forum.dlang.org
> I have a suspicion that what you're asking for here is the
> type-inference to have x-ray vision in to uninstantiated
> templates that works for a few simple cases. Am I wrong?
No, just substitute: "Bar!int" with "Foo!int".
> To be clear, a really useful special case can be really useful
> and worthwhile, but I'm not convinced this is the principled
> "type system bug" you are saying it is.
Why are you not convinced?
An alias is a short hand. If it is possible to discriminate by
the alias and the actual object then that it a semantic problem.
More information about the Digitalmars-d-announce
mailing list