Thread overview
writefln on interface array
Apr 07, 2010
strtr
Apr 07, 2010
Ellery Newcomer
Apr 07, 2010
strtr
April 07, 2010
Is it possible to have this output [null,"1"] in stead of Error: std.format formatArg?

interface I{}
class C:I{
int index;
char[] toString(){ return toString(index) }
}

I[2] two_i;
I[1] = new C();
writefln(two_i);



Would be handy for debugging ;)

April 07, 2010
On 04/07/2010 06:13 AM, strtr wrote:
> Is it possible to have this output [null,"1"] in stead of Error: std.format formatArg?
>
> interface I{}
> class C:I{
> int index;
> char[] toString(){ return toString(index) }
> }
>
> I[2] two_i;
> I[1] = new C();
> writefln(two_i);
>
>
>
> Would be handy for debugging ;)
>

s/interface I{}/interface I{ char[] toString(); }/
s/writefln(two_i)/writefln("%s",two_i)/

?

or see bug 535
April 07, 2010
Ellery Newcomer Wrote:

> 
> s/interface I{}/interface I{ char[] toString(); }/
> s/writefln(two_i)/writefln("%s",two_i)/
> 
> ?
no :(
> 
> or see bug 535
voted ++
April 08, 2010
On Wed, 07 Apr 2010 07:13:07 -0400, strtr <strtr@spam.com> wrote:

> Is it possible to have this output [null,"1"] in stead of Error: std.format formatArg?
>
> interface I{}
> class C:I{
> int index;
> char[] toString(){ return toString(index) }
> }
>
> I[2] two_i;
> I[1] = new C();
> writefln(two_i);
>
>
>
> Would be handy for debugging ;)
>

Don't think this is exactly what you are looking for, but have you tried writeln?  writefln requires the first argument to be a string, it didn't used to, but it was determined that the resulting behavior when you want to just print a string is too confusing.

-Steve