Does this design pattern have a name? I wanted to read more about it but I don't really know what to google for.
Minimal example:
#include <iostream>
struct Color {
Color() {}
union {
uint32_t rgba;
struct {
uint8_t r, g, b, a;
};
};
void print() {
std::cout << std::hex << "RGBA(" << (int)r << ", " << (int)g << ", " << (int)b << ", " << (int)a << ")\t(" << rgba << ")\n";
}
};
int main(int argc, char* argv[]) {
Color A, B;
A.print();
A.a = 0xff;
A.g = 0xaa;
A.print();
A.rgba = 0x116699aa;
A.print();
system("pause");
}
Output:
RGBA(0, 0, 0, 0) (0)
RGBA(0, aa, 0, ff) (ff00aa00)
RGBA(aa, 99, 66, 11) (116699aa)