www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - DMD 2.0 void[]

reply nobody <not possible.net> writes:
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
Jun 18 2007
parent reply Deewiant <deewiant.doesnotlike.spam gmail.com> writes:
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.
Jun 19 2007
parent Sean Kelly <sean f4.ca> writes:
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
Jun 19 2007