Okay here's the deal. In our application, I implement various different libraries, each which like to use their own datatypes. (SDL, OpenGL, and OpenAL are the big three). In addition to that, our application defines its own types, which are nothing more than #define wrappers around the SDL types (we didn't like the naming scheme of the SDL types). So my question here is how do we make all these types friendly with each other?
For example, I want to assign a float to a ALfloat (OpenAL's float) and vice-versa. Do I need to do explicit static_cast calls for each type conversion to eliminate warnings, or is there another trick that we could use with the C preprocessor? (Because there would be A LOT of casting that needs to be done otherwise!).
Also are there any issues we should worry about with word size? All of the standard integer types we use in our app are suffixed with 8, 16, or 32 to define the bit-size, but if I want to assign a Alint (OpenAL's integer) to a uint8, int16 (signed), or uint32, couldn't that potentially be a provlem? Especially considering that this application needs to be cross-platform across 32 and 64 bit architectures, from Linux to MacOS X to (yes, sadly) Windows.
I'm just curious about these issues and how serious they might be. So far everything works across all three systems though.
Thanks in advance.