An enum can choose a label from an array when its values are compact.

Enum Arrays

enum_arrays.cpp
#include <array>
#include <iostream>
#include <string>

enum class Day {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday
};

int main() {
    Day day = ;
    std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
    std::array<int, 5> tasks{2, 3, 4, 3, 1};

    int index = static_cast<int>(day);

    std::cout << "day=" << labels[index] << std::endl;
    std::cout << "tasks=" << tasks[index] << std::endl;
    return 0;
}
#include <array>
#include <iostream>
#include <string>

enum class Day {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday
};

int main() {
    Day day = ;
    std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
    std::array<int, 5> tasks{2, 3, 4, 3, 1};

    int index = static_cast<int>(day);

    std::cout << "day=" << labels[index] << std::endl;
    std::cout << "tasks=" << tasks[index] << std::endl;
    return 0;
}
#include <array>
#include <iostream>
#include <string>

enum class Day {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday
};

int main() {
    Day day = ;
    std::array<std::string, 5> labels{"Mon", "Tue", "Wed", "Thu", "Fri"};
    std::array<int, 5> tasks{2, 3, 4, 3, 1};

    int index = static_cast<int>(day);

    std::cout << "day=" << labels[index] << std::endl;
    std::cout << "tasks=" << tasks[index] << std::endl;
    return 0;
}
enum index Casting a compact enum to an integer can select related data from an array.