| Thread overview | |||||||
|---|---|---|---|---|---|---|---|
|
February 28, 2009 string-arguments of functions in 'std.file' | ||||
|---|---|---|---|---|
| ||||
dmd2.025, Windows Some standard functions receive 'string' arguments. This is not a bug, but not good specs. void[] read( in string name ); void[] write( in string name, const void[] buffer ); ... They should be void[] read( in char[] name ); void[] write( in char[] name, const void[] buffer ); ... Former cannot receive char[]-arguments, and latter can. This change has backward compatibility. | ||||
February 28, 2009 Re: string-arguments of functions in 'std.file' | ||||
|---|---|---|---|---|
| ||||
Posted in reply to CLXX |
CLXX wrote:
> dmd2.025, Windows
>
> Some standard functions receive 'string' arguments.
> This is not a bug, but not good specs.
>
> void[] read( in string name );
> void[] write( in string name, const void[] buffer );
> ....
>
> They should be
>
> void[] read( in char[] name );
> void[] write( in char[] name, const void[] buffer );
> ....
>
> Former cannot receive char[]-arguments, and latter can. This change has backward compatibility.
I... wait, what?
*blinks*
That change will just mean that the functions can't take string arguments, and if you WANT to pass a string, you have to heap-allocate a new one.
Why don't you just pass a string?
-- Daniel
| |||
February 28, 2009 Re: string-arguments of functions in 'std.file' | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Daniel Keep | On 28.02.2009 15:47, Daniel Keep wrote:
>
> CLXX wrote:
>> dmd2.025, Windows
>>
>> Some standard functions receive 'string' arguments.
>> This is not a bug, but not good specs.
>>
>> void[] read( in string name );
>> void[] write( in string name, const void[] buffer );
>> ....
>>
>> They should be
>>
>> void[] read( in char[] name );
>> void[] write( in char[] name, const void[] buffer );
>> ....
>>
>> Former cannot receive char[]-arguments, and latter can.
>> This change has backward compatibility.
>
> I... wait, what?
>
> *blinks*
>
> That change will just mean that the functions can't take string
> arguments, and if you WANT to pass a string, you have to heap-allocate a
> new one.
>
> Why don't you just pass a string?
Hehe, someone had to little coffee today. 'in' implies const, and invariant is implicitly convertible to const. So Mr. 'CLXX' is right. :P
| |||
February 28, 2009 Re: string-arguments of functions in 'std.file' | ||||
|---|---|---|---|---|
| ||||
Posted in reply to CLXX | CLXX wrote:
> dmd2.025, Windows
>
> Some standard functions receive 'string' arguments.
> This is not a bug, but not good specs.
>
> void[] read( in string name );
> void[] write( in string name, const void[] buffer );
> ...
>
> They should be
>
> void[] read( in char[] name );
> void[] write( in char[] name, const void[] buffer );
> ...
>
> Former cannot receive char[]-arguments, and latter can.
> This change has backward compatibility.
Yah, many of them are already changed in my tree. Phobos will have to sit this release out, though.
Andrei
| |||
March 01, 2009 Re: string-arguments of functions in 'std.file' | ||||
|---|---|---|---|---|
| ||||
Posted in reply to torhu |
torhu wrote:
> On 28.02.2009 15:47, Daniel Keep wrote:
>>
>> CLXX wrote:
>>> dmd2.025, Windows
>>>
>>> Some standard functions receive 'string' arguments.
>>> This is not a bug, but not good specs.
>>>
>>> void[] read( in string name );
>>> void[] write( in string name, const void[] buffer );
>>> ....
>>>
>>> They should be
>>>
>>> void[] read( in char[] name );
>>> void[] write( in char[] name, const void[] buffer );
>>> ....
>>>
>>> Former cannot receive char[]-arguments, and latter can.
>>> This change has backward compatibility.
>>
>> I... wait, what?
>>
>> *blinks*
>>
>> That change will just mean that the functions can't take string arguments, and if you WANT to pass a string, you have to heap-allocate a new one.
>>
>> Why don't you just pass a string?
>
> Hehe, someone had to little coffee today. 'in' implies const, and invariant is implicitly convertible to const. So Mr. 'CLXX' is right. :P
*stares at it*
Well, that's what I get for posting at 2 AM.
-- Daniel
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply