91 VM1_3 = VM1 | VM2 | VM3,
92 VM1_4 = VM1 | VM2 | VM3 | VM4,
93 VM1_5 = VM1 | VM2 | VM3 | VM4 | VM5,
94 VM1_8 = VM1 | VM2 | VM3 | VM4 | VM5 | VM6 | VM8,
96 VM1_32 = VM1 | VM2 | VM3 | VM4 | VM5 | VM6 | VM8 | VM9 | VM16 | VM24 | VM32,
97 VM1_99 = VM1 | VM2 | VM3 | VM4 | VM5 | VM6 | VM8 | VM9 | VM16 | VM24 | VM32 | VM99,
98 VM1_n = VM1 | VM2 | VM3 | VM4 | VM5 | VM6 | VM8 | VM9 | VM16 | VM24 | VM32 | VM99 | VM256,
99 VM2_2n = VM2 | VM4 | VM6 | VM8 | VM16 | VM24 | VM32 | VM256,
100 VM2_n = VM2 | VM3 | VM4 | VM5 | VM6 | VM8 | VM9 | VM16 | VM24 | VM32 | VM99 | VM256,
102 VM3_3n = VM3 | VM6 | VM9 | VM24 | VM99 | VM256,
103 VM3_n = VM3 | VM4 | VM5 | VM6 | VM8 | VM9 | VM16 | VM24 | VM32 | VM99 | VM256,
104 VM4_4n = VM4 | VM16 | VM24 | VM32 | VM256,
105 VM6_6n = VM6 | VM12 | VM18 | VM24 ,
114 static const char* GetVMString(VMType vm);
115 static VMType GetVMType(
const char *vm);
119 static bool IsValid(
int vm1, VMType vm2);
125 bool Compatible(
VM const &vm)
const;
128 static VMType GetVMTypeFromLength(
unsigned int length,
unsigned int size);
129 static unsigned int GetNumberOfElementsFromArray(
const char *array,
unsigned int length);
132 operator VMType ()
const {
return VMField; }
133 unsigned int GetLength()
const;
135 friend std::ostream &
operator<<(std::ostream &os,
const VM &vm);
137 static unsigned int GetIndex(VMType vm);
154 template<
int T>
struct VMToLength;
155 #define TYPETOLENGTH(type,length) \
156 template<> struct VMToLength<VM::type> \
157 { enum { Length = length }; };