Advertisement
Guest User

Untitled

a guest
Mar 12th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 0.70 KB | None | 0 0
  1. struct First {
  2.     uint type = 0;
  3.     int data;
  4.    
  5.     this( int d ) {
  6.         data = d;
  7.     }
  8. }
  9.  
  10. struct Second {
  11.     uint type = 1;
  12.     double data;
  13.    
  14.     this( double d ) {
  15.         data = d;
  16.     }
  17. }
  18.  
  19. First returnFirst( int data ) {
  20.     return First( data );
  21. }
  22.  
  23. Second returnSecond( double data ) {
  24.     return Second( data );
  25. }
  26.  
  27. void printAny( uint * type ) {
  28.     if( *type == 0 ) {
  29.         writeln( (cast(First *)type).data );
  30.     } else if( *type == 1 ) {
  31.         writeln( (cast(Second *)type).data );
  32.     } else {
  33.         writeln( "Error" );
  34.     }
  35. }
  36.  
  37. int main() {
  38.  
  39.     printAny( &returnFirst( 42 ).type );
  40.     printAny( &returnSecond( 3.14 ).type );
  41.  
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement