Proposal for std.path replacement

spir denis.spir at gmail.com
Fri Mar 4 00:18:07 PST 2011


On 03/04/2011 04:23 AM, Graham St Jack wrote:
> On 04/03/11 12:34, Bekenn wrote:
>> On 3/3/11 3:30 PM, Graham St Jack wrote:
>>> My first instinct would be to use non-templated functions that take const
>>> char[].
>>>
>>
>> Please don't ever restrict encodings like that. As much as possible,
>> libraries should seek to be encoding agnostic (though I'm all for
>> const-qualifying parameters). This is one area where I feel the standard
>> library severely lacks at present.
>>
>> As a Windows developer, I prefer to use wchar strings by default and use only
>> the W versions of the Windows API functions, because the A versions severely
>> limit functionality. Only the W versions have full support for Unicode; the A
>> versions are entirely dependent on the current (8-bit) code page. This means
>> no support for UNC paths or paths longer than 260 characters, and also means
>> that international characters commonly end up completely garbled. Good
>> practice in Windows is to consider the A versions deprecated and avoid them
>> like the plague.
>
> Ok, I don't mind supporting wchar and dchar in addition to char, especially if
> Windows insists on using them.
>
> My main issue here is with the constness of the parameters. I think the correct
> parameter to pass is const C[]. This has the advantages of:
> * Accepting both mutable and immutable data.
> * Declares that the function won't mutate the data.
> * Declares that the function doesn't expect the data to be immutable.
>
> It would be even better to use const scope char[], declaring that a reference
> won't be kept, but it seems that scope in this context is deprecated.
>
> Once upon a time "in" meant const scope. Does anyone know what it means now?

AFAIK not only 'in' is still const scope, but it precisely means what your 
param is: plain input.
(I would love params to be 'ini' by default.)

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list