digitalmars.D.learn - void buffer
- Manfred Hansen (18/18) Nov 03 2007 Hello,
- Nathan Reed (7/33) Nov 03 2007 You can't directly write out a void array, the standard library doesn't
- Manfred Hansen (7/42) Nov 03 2007 This example run with dmd 2.002 . I believe there has someting change
- Carlos Santander (4/53) Nov 03 2007 In that case, use "std.file.write", or "alias std.file.write write" in y...
Hello, the prorgramm under linux dmd 2.007 import std.file; import std.stdio; int main() { string str1 = "Zeile 1\n", str2 = "Zeile 2 \n"; const(void)[] buf; buf ~= str1; buf ~= str2; write("test_neu.txt",buf); return 0; } gives an error: ~/dd/dmd/src/phobos/std/format.d(1983): variable std.format.formatGeneric (FileWriter!(char),const( void)[]).formatGeneric.e voids have no value Have someone an idea to fix this. manni
Nov 03 2007
Manfred Hansen wrote:Hello, the prorgramm under linux dmd 2.007 import std.file; import std.stdio; int main() { string str1 = "Zeile 1\n", str2 = "Zeile 2 \n"; const(void)[] buf; buf ~= str1; buf ~= str2; write("test_neu.txt",buf); return 0; } gives an error: ~/dd/dmd/src/phobos/std/format.d(1983): variable std.format.formatGeneric (FileWriter!(char),const( void)[]).formatGeneric.e voids have no value Have someone an idea to fix this. manniYou can't directly write out a void array, the standard library doesn't know how to do that since a void array basically means "I don't know what the type(s) of this data is/are". You'll have to cast it to string before you can write it. Thanks, Nathan Reed
Nov 03 2007
Nathan Reed wrote:Manfred Hansen wrote:This example run with dmd 2.002 . I believe there has someting change in const/infariant situation. The write method in std.file (line 147) look like void write(in string name, const void[] buffer) This is what i want. Sincerely manniHello, the prorgramm under linux dmd 2.007 import std.file; import std.stdio; int main() { string str1 = "Zeile 1\n", str2 = "Zeile 2 \n"; const(void)[] buf; buf ~= str1; buf ~= str2; write("test_neu.txt",buf); return 0; } gives an error: ~/dd/dmd/src/phobos/std/format.d(1983): variable std.format.formatGeneric (FileWriter!(char),const( void)[]).formatGeneric.e voids have no value Have someone an idea to fix this. manniYou can't directly write out a void array, the standard library doesn't know how to do that since a void array basically means "I don't know what the type(s) of this data is/are". You'll have to cast it to string before you can write it. Thanks, Nathan Reed
Nov 03 2007
Manfred Hansen escribió:Nathan Reed wrote:In that case, use "std.file.write", or "alias std.file.write write" in your module. -- Carlos Santander BernalManfred Hansen wrote:This example run with dmd 2.002 . I believe there has someting change in const/infariant situation. The write method in std.file (line 147) look like void write(in string name, const void[] buffer) This is what i want. Sincerely manniHello, the prorgramm under linux dmd 2.007 import std.file; import std.stdio; int main() { string str1 = "Zeile 1\n", str2 = "Zeile 2 \n"; const(void)[] buf; buf ~= str1; buf ~= str2; write("test_neu.txt",buf); return 0; } gives an error: ~/dd/dmd/src/phobos/std/format.d(1983): variable std.format.formatGeneric (FileWriter!(char),const( void)[]).formatGeneric.e voids have no value Have someone an idea to fix this. manniYou can't directly write out a void array, the standard library doesn't know how to do that since a void array basically means "I don't know what the type(s) of this data is/are". You'll have to cast it to string before you can write it. Thanks, Nathan Reed
Nov 03 2007