Reality drives me to write less clean code
    davidl 
    davidl at 126.com
       
    Thu Oct 11 03:54:37 PDT 2007
    
    
  
First practice:
char[] text;
char* p;
char* end;
Version1:
p=text.ptr;
end= text.ptr+length;
we use p to scan over the text, and end as a mark.
Version2:
text[blah] to scan over the text.
Obviously version 2 is cleaner, but slower.
Second practice:
version 1:
enum basictype
{
     tint,
     tint32,
     tunsint32,
     tlong,
     tuslong32,
     tcomplex,
     tcomplex64,
     tcomplex80,
     timaginary,
     timaginary64,
     timaginary80,
}
class Type
{
    basictype bt;
}
we do some switch-case to test what on earth this type is in this case.
version2:
class Type{}
interface TypeReal:TypeComplex{}
interface TypeImaginary:TypeComplex{}
interface TypeComplex{}
interface Type32bit{}
interface Type64bit{}
interface Type80bit{}
interface TypeUnsigned{}
class TypeNumber:Type{}
class TypeUSInt:TypeNumber, Type32bit, TypeUnsigned{}
class TypeInt:TypeNumber,Type32bit {}
class TypeComplex64:TypeNumber,TypeComplex, Type64bit {}
class TypeComplex80:TypeNumber,TypeComplex, Type80bit{}
class TypeImaginary:TypeNumber,TypeImaginary {}
class TypeImaginary64:TypeNumber,TypeImaginary, Type64bit{}
Honestly, I prefer version2 a little bit more to version1.
But, version2 gets too much runtime penalty.
Ideas?
-- 
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/
    
    
More information about the Digitalmars-d-announce
mailing list