Changes in libcfa/src/enum.hfa [b006c51e:26d40a1]
- File:
-
- 1 edited
-
libcfa/src/enum.hfa (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/enum.hfa
rb006c51e r26d40a1 2 2 3 3 #include "iostream.hfa" 4 5 forall( E ) trait Bounded { 6 E lowerBound(void); 7 E upperBound(void); 8 }; 9 10 forall( E | Bounded( E ) ) trait Serial { 11 int fromInstance( E e ); 12 E fromInt_unsafe( int i ); 13 E succ_unsafe( E e ); 14 E pred_unsafe( E e ); 15 }; 16 17 forall( E | Serial( E ) ) { 18 E fromInt( int i ); 19 E succ( E e ); 20 E pred( E e ); 21 int Countof( E ); 22 } 23 24 // forall( E | Bounded(E) ) trait SafeSerial { 25 // // unsigned fromInstance( E e ); 26 // E fromInt_unsafe( unsigned i ); 27 // // E succ_unsafe( E e ); 28 // //E pred_unsafe( E e ); 29 30 // unsigned fromInstance( E e ); 31 // E fromInt( unsigned i ); 32 // E succ( E e ); 33 // E pred( E e ); 34 // }; 35 36 forall( E ) trait CfaEnum { 37 const char * label( E e ); 38 int posn( E e ); 39 }; 40 41 forall( E, V | CfaEnum( E ) ) trait TypedEnum { 42 V value( E e ); 43 }; 44 45 // I/O 4 46 5 47 forall( istype & | istream( istype ), E | CfaEnum( E ) | Serial(E) )
Note:
See TracChangeset
for help on using the changeset viewer.