Advertisement
Guest User

Untitled

a guest
Jun 9th, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 0.58 KB | None | 0 0
  1. import std.stdio;
  2. import std.traits;
  3.  
  4. class Greeter(T) {
  5.     static if (__traits(hasMember, T, "name")) {
  6.         T person;
  7.  
  8.         this(T person) {
  9.             this.person = person;
  10.         }
  11.  
  12.         void greet() {
  13.             writefln("hello %s!", person.name);
  14.         }
  15.     }
  16.  
  17.     void genericGreet() {
  18.         writeln("hello world!");
  19.     }
  20. }
  21.  
  22. class Person {
  23.     string name;
  24.  
  25.     this(string name) {
  26.         this.name = name;
  27.     }
  28. }
  29.  
  30. void main() {
  31.     auto g1 = new Greeter!(int)();
  32.     auto g2 = new Greeter!(Person)(new Person("Alex"));
  33.     g1.genericGreet();
  34.     g2.greet();
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement