Я экспериментирую с новыми функциями отражения времени компиляции C ++ (как описано в P2996R0) и я тестирую простое enum_to_string () с использованием шаблона для :
Код: Выделить всё
template
requires std::is_enum_v
constexpr std::string enum_to_string(E value) {
template for (constexpr auto e : std::meta::enumerators_of(^^E)) {
if (value == [:e:]) {
return std::string(std::meta::identifier_of(e));
}
}
return "";
}
Насколько я понимаю, это не обычный цикл, а скорее разворачивание времени компиляции повторного кода с различными заменами шаблонов.
Функции, используемые на основе диапазона для петли? Использование шаблона для ? Запланирован ли шаблон для на begin () /
? Нужно ли моделировать конкретную концепцию или структуру? enumerators_of ?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... ork-in-c26