dChar Error
matheus
matheus at gmail.com
Fri Dec 30 11:05:07 UTC 2022
On Friday, 30 December 2022 at 10:03:20 UTC, Salih Dincer wrote:
> On Friday, 30 December 2022 at 09:29:16 UTC, novice2 wrote:
>> On Friday, 30 December 2022 at 04:43:48 UTC, Salih Dincer
>> wrote:
>>> ...
>>> // example one:
>>> char[] str1 = "cur:€_".dup;
>>> ...
>>> // example two:
>>> dchar[] str2 = cast(dchar[])"cur:€_"d;
>>> ...
>>> SDB at 79
>>
>> why you use .dup it example one, but not use in example two?
>>
>> dchar[] str2 = cast(dchar[])"cur:€_"d.dup;
>
> If I do not use .dup in the 1st example and convert as
> cast(char[]), it gives an error. However, in the 2nd example
> using .dup does nothing. It's not working anyway!
> ...
Are you sure about that?
Because replacing this:
dchar[] str2 = cast(dchar[])"cur:€_"d;
with this:
dchar[] str2 = (cast(dchar[])"cur:€_").dup;
Worked for me:
8: [€_]
[cur:$ _]
6: [€_]
[cur$ _]
A small example of the problem:
import std.stdio;
void main(){
dchar[] str1 = (cast(dchar[])"cur:€_").dup;
dchar[] str2 = (cast(dchar[])"cur:€_");
str1[0] = '1';
//str2[0] = '1'; // this will give: Error: program killed by
signal 11
}
Matheus.
More information about the Digitalmars-d-learn
mailing list