Purpose here is to reduce bloat in StructMember classes and DataTypes classes, and to break the dependency between the Value hierarchy and the DataType hierarchy. This is done everywhere except the PrimitiveDataType classes. I think that it's going to be necessary to use template metaprogramming to finish that, to conditionally compile getValue/assignValue with appropriate integer or floating point return values and parameters. I think this can be done though.
For now, we moved everything we wanted to move into Visitors, and took the Value dependency out of the DataType class at least.
Purpose here is to reduce bloat in StructMember classes and DataTypes classes, and to break the dependency between the Value hierarchy and the DataType hierarchy. This is done everywhere except the PrimitiveDataType classes. I think that it's going to be necessary to use template metaprogramming to finish that, to conditionally compile getValue/assignValue with appropriate integer or floating point return values and parameters. I think this can be done though.
For now, we moved everything we wanted to move into Visitors, and took the Value dependency out of the DataType class at least.