container vs standard array
    Nick Treleaven 
    nick at geany.org
       
    Tue Sep 19 19:57:34 UTC 2023
    
    
  
On Tuesday, 19 September 2023 at 06:35:01 UTC, JG wrote:
> On Tuesday, 19 September 2023 at 00:34:01 UTC, vino wrote:
>>  //auto a = Array!string("Aname");           // throws error
>>  auto b = Array!char("Bname");             	// works
>>  auto c = Array!string("Aname", "Bname");  	// works
...
> Looks to me like when it receives a single range it expects the 
> elements of that range to match the type.
Yes, the first overload fails to match because U is inferred as 
immutable(char) rather than string:
     this(U)(U[] values...)
     if (isImplicitlyConvertible!(U, T))
This is because a single array can be passed to a typesafe 
variadic parameter rather than elements of that array type. And 
then immutable(char) doesn't convert to string.
I think a non-variadic overload could be added to make it work as 
expected.
    
    
More information about the Digitalmars-d-learn
mailing list