Я работаю с библиотекой C ( Raylib ), которая использует следующее для представления цвета:
#define RED { 230, 41, 55, 255 }
// Color type, RGBA (32bit)
typedef struct Color {
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
} Color;
Я хочу определить перечисление всех Color
объектовкоторый я буду использовать в своей палитре в своем коде C++
.
Но enum class
допускает только целые виды значений. Каков наилучший способ иметь фиксированный статический набор значений, которые не являются целочисленными?
Один из подходов, который я имею в виду, - это просто объявить static constexpr
значения в struct
. Это правильный подход?
struct Color {
constexpr static auto MYRED = RED;
constexpr static auto MYBLUE = BLUE;
constexpr static auto MYGREEN = GREEN;
};