How to instantiate a template struct with a template constructor without relying on auto deduction?
Simen Kjærås
simen.kjaras at gmail.com
Wed Feb 21 14:42:56 UTC 2018
On Wednesday, 21 February 2018 at 14:29:38 UTC, ixid wrote:
> I do not understand what is happening here, I tried to wrote
> what I thought would be the answer. If someone could explain
> that would be great. I wrote this code:
>
> struct Foo2(T, S) {
> T bar;
> this(S s) {
> bar = s.to!T;
> }
> }
>
> void main() {
> float some_float = 0.5f;
> int some_int = 1;
>
> auto foo1 = Foo2!(int, float)(some_float); // Compiles, OK!
> auto foo2 = Foo2!(int, float)(some_int); // Compiles, wat?
> }
int n = 1;
float f = n; // Basically this.
Foo2!(int, float) expects a float, and ints are implicitly
convertible to float.
--
Simen
More information about the Digitalmars-d-learn
mailing list