Am 01.12.2010 16:51, schrieb vincent picaud:
Is there a canonical way to take into account a new type for I/O using the std 
phobos library ?

To be clear I do not know how to translate something like this (in C++)  in D :

#include<iostream>

class A {};

std::ostream&  operator<<(std::ostream&  out,const A&  a)
{
   out<<  "\nscreen output routine here\n";
   return out;
}

int main()
{
   A a;
   std::cout<<  a;
}

Do I have to overload some writeln functions ?

any help is welcome :)

I would make it this way:

module test;

import std.stdio;

class A{}
class B{ string toString() {return "screen output routine here";}}

int main(string[] args)
{
    A a=new A;
    B b=new B;
    writeln(a.toString());
    writeln(b.toString());
    return 0;
}

output:
> test.A
> screen output routine here

Base-class of all classes is object with have a default-toString() method, which gives the module.classname.
So you can overwrite this method.

Reply via email to