Changeset b006c51e for libcfa/src
- Timestamp:
- Nov 3, 2024, 2:47:59 PM (11 months ago)
- Branches:
- master
- Children:
- 10a9479d
- Parents:
- ad9f593
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/enum.hfa
rad9f593 rb006c51e 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/O46 4 47 5 forall( istype & | istream( istype ), E | CfaEnum( E ) | Serial(E) )
Note:
See TracChangeset
for help on using the changeset viewer.