// Boost example.hpp code file for set class // // (C) Copyright Richard Herrick 2002. // // Permission to copy, use, modify, sell and distribute this software // is granted provided this copyright notice appears in all // copies. This software is provided "as is" without express or // implied warranty, and with no claim as to its suitability for any // purpose. // // See http://www.boost.org for updates, documentation, and revision history. // // #include "discrete_set.hpp" #include using namespace boost; #define DO_SOMETHING ((void) 0) // creating sets // first, define a type used for the elements of the set. may be any // integral type within the range of an int. the type used must allow // for a sentinel value, outside the range of the set elements. this // value defaults to -1. the lowest value in the set range defaults to 0. // simple set type enum Colors {red=1, orange=8, yellow=7, green=3, blue=15, indigo=900, violet=0xff, null_color = -1}; #if defined(__BORLANDC__) typedef discrete_set ColorSet; #else typedef discrete_set ColorSet; #endif typedef enum { eNA_TYPE = 0x010, eGLOBAL_OBJECT = 0x001, eNON_GLOBAL_OBJECT = 0x002, eSPECIAL_OBJECT = 0x004, e1 = 0x030 | eNON_GLOBAL_OBJECT, e2 = 0x040 | eGLOBAL_OBJECT, e3 = 0x050 | eNON_GLOBAL_OBJECT, e4 = 0x060 | eNON_GLOBAL_OBJECT, e5 = 0x070 | eNON_GLOBAL_OBJECT, e6 = 0x080 | eGLOBAL_OBJECT, e7 = 0x090 | eNON_GLOBAL_OBJECT, e8 = 0x100 | eNON_GLOBAL_OBJECT, e9 = 0x110 | eGLOBAL_OBJECT, e10 = 0x120 | eGLOBAL_OBJECT, e11 = 0x130 | eNON_GLOBAL_OBJECT, e12 = 0x140 | eNON_GLOBAL_OBJECT, e13 = 0x150 | eNON_GLOBAL_OBJECT, e14 = 0x160 | eGLOBAL_OBJECT, e15 = 0x170 | eNON_GLOBAL_OBJECT, e16 = 0x180 | eNON_GLOBAL_OBJECT, e17 = 0x190 | eNON_GLOBAL_OBJECT, e18 = 0x200 | eNON_GLOBAL_OBJECT, e19 = 0x210 | eGLOBAL_OBJECT, e20 = 0x220 | eNON_GLOBAL_OBJECT, e21 = 0x230 | eNON_GLOBAL_OBJECT, e22 = 0x240 | eNON_GLOBAL_OBJECT, e23 = 0x250 | eNON_GLOBAL_OBJECT, e24 = 0x260 | eNON_GLOBAL_OBJECT, e25 = 0x270 | eNON_GLOBAL_OBJECT, e26 = 0x280 | eGLOBAL_OBJECT, e27 = 0x290 | eNON_GLOBAL_OBJECT, e28 = 0x300 | eNON_GLOBAL_OBJECT, e29 = 0x310 | eNON_GLOBAL_OBJECT, e30 = 0x330 | eGLOBAL_OBJECT, e31 = 0x350 | eGLOBAL_OBJECT, e32 = 0x380 | eGLOBAL_OBJECT, e33 = 0x390 | eGLOBAL_OBJECT, e34 = 0x400 | eGLOBAL_OBJECT, e35 = 0x420 | eNON_GLOBAL_OBJECT, e36 = 0x430 | eNON_GLOBAL_OBJECT, e37 = 0x440 | eNON_GLOBAL_OBJECT, e38 = 0x450 | eGLOBAL_OBJECT, e39 = 0x460 | eNON_GLOBAL_OBJECT, e40 = 0x470 | eNON_GLOBAL_OBJECT, e41 = 0x480 | eGLOBAL_OBJECT, e42 = 0x490 | eNON_GLOBAL_OBJECT, e43 = 0x500 | eNON_GLOBAL_OBJECT, e44 = 0x510 | eNON_GLOBAL_OBJECT, e45 = 0x520 | eGLOBAL_OBJECT, e46 = 0x530 | eNON_GLOBAL_OBJECT, e47 = 0x550 | eNON_GLOBAL_OBJECT, e48 = 0x560 | eNON_GLOBAL_OBJECT, e49 = 0x570 | eGLOBAL_OBJECT, e50 = 0x580 | eNON_GLOBAL_OBJECT, e51 = 0x590 | eGLOBAL_OBJECT, e52 = 0x600 | eGLOBAL_OBJECT, e53 = 0x610 | eGLOBAL_OBJECT, e54 = 0x620 | eGLOBAL_OBJECT, e55 = 0x630 | eNON_GLOBAL_OBJECT, e56 = 0x640 | eNON_GLOBAL_OBJECT, e57 = 0x650 | eNON_GLOBAL_OBJECT, e58 = 0x660 | eNON_GLOBAL_OBJECT, e59 = 0x670 | eNON_GLOBAL_OBJECT, e60 = 0x680 | eNON_GLOBAL_OBJECT, e61 = 0x690 | eNON_GLOBAL_OBJECT, e62 = 0x700 | eSPECIAL_OBJECT, e63 = 0x710 | eNON_GLOBAL_OBJECT, e64 = 0x720 | eNON_GLOBAL_OBJECT, e65 = 0x730 | eNON_GLOBAL_OBJECT, e66 = 0x740 | eNON_GLOBAL_OBJECT, e67 = 0x750 | eGLOBAL_OBJECT, e68 = 0x760 | eNON_GLOBAL_OBJECT, e69 = 0x770 | eNON_GLOBAL_OBJECT, e70 = 0x780 | eNON_GLOBAL_OBJECT, e71 = 0x790 | eNON_GLOBAL_OBJECT, e72 = 0x800 | eGLOBAL_OBJECT, e73 = 0x810 | eGLOBAL_OBJECT | eSPECIAL_OBJECT, e74 = -1 } EObjectType; const EObjectType __arr__ObjectType[] = { e1 , e2, e3, e4, e5, e6, e7, e8, e9,e10, e11,e12,e13,e14,e15,e16,e17,e18,e19,e20, e21,e22,e23,e24,e25,e26,e27,e28,e29,e30, e31,e32,e33,e34,e35,e36,e37,e38,e39,e40, e41,e42,e43,e44,e45,e46,e47,e48,e49,e50, e51,e52,e53,e54,e55,e56,e57,e58,e59,e60, e61,e62,e63,e64,e65,e66,e67,e68,e69,e70, e71,e72,e73,e74 }; typedef discrete_set CObjectTypeSet; void example() { CObjectTypeSet setObj( __arr__ObjectType ); for( int i = 0; __arr__ObjectType[i] != -1; i++ ) { if( !setObj.contains( __arr__ObjectType[i] ) ) ;//assert(0); if( setObj.contains( static_cast( i * 0x820) ) ) ;//assert(0); if( setObj.contains( static_cast( -1 * i * 0x820) ) ) ;//assert(0); } } void main() { example(); }