How to instantiate a template struct with a template constructor without relying on auto deduction?
ixid
nuaccount at gmail.com
Wed Feb 21 14:58:45 UTC 2018
On Wednesday, 21 February 2018 at 14:42:56 UTC, Simen Kjærås
wrote:
> 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
Ah yes, that was silly of me to forget. Thanks!
More information about the Digitalmars-d-learn
mailing list