Thread overview
DMD 2.0 void[]
Jun 19, 2007
nobody
Jun 19, 2007
Deewiant
Jun 19, 2007
Sean Kelly
June 19, 2007
Hello,

import std.file;
import std.stdio;

int main() {
        string str1 = "Zeile 1\n", str2 = "Zeile 2 \n";
        void[] buf;

        buf ~= str1; buf ~= str2;
        write("test_neu.txt",buf);

        return 0;
}

How must i change the line void[] buf  ?

I can make  buf ~= str1.dup  , but i didn't understand why dup in dmd 2.0 is needed.

Thanks
June 19, 2007
nobody wrote:
> Hello,
> 
> import std.file;
> import std.stdio;
> 
> int main() {
>         string str1 = "Zeile 1\n", str2 = "Zeile 2 \n";
>         void[] buf;
> 
>         buf ~= str1; buf ~= str2;
>         write("test_neu.txt",buf);
> 
>         return 0;
> }
> 
> How must i change the line void[] buf  ?
> 

const(void)[] buf, because "string" is const(char)[].

-- 
Remove ".doesnotlike.spam" from the mail address.
June 19, 2007
Deewiant wrote:
> nobody wrote:
>> Hello,
>>
>> import std.file;
>> import std.stdio;
>>
>> int main() {
>>         string str1 = "Zeile 1\n", str2 = "Zeile 2 \n";
>>         void[] buf;
>>
>>         buf ~= str1; buf ~= str2;
>>         write("test_neu.txt",buf);
>>
>>         return 0;
>> }
>>
>> How must i change the line void[] buf  ?
>>
> 
> const(void)[] buf, because "string" is const(char)[].

It shouldn't matter for an append operation unless the const array contains class references.  Though I suppose the current rule is more clear.


Sean