#include <iostream>#include <array>// Шаблонная структура для вычисления арифметической прогрессииtemplate<typename T, T Start, T Difference, size_t Index>struct ArithmeticProgression{static constexpr T value = Start + Index * Difference;};// Рекурсивная структура для генерации массиваtemplate<typename T, T Start, T Difference, size_t... Indices>constexpr std::array<T, sizeof...(Indices)> generateProgression(std::index_sequence<Indices...>){return { ArithmeticProgression<T, Start, Difference, Indices>::value... };}// Основной шаблон функции для вычисления прогрессииtemplate<typename T, T Start, T Difference, size_t Count>constexpr auto makeArithmeticProgression(){return generateProgression<T, Start, Difference>(std::make_index_sequence<Count>{});}int main(){// Генерация арифметической прогрессии во время компиляцииconstexpr auto progression = makeArithmeticProgression<int, 1, 2, 10>();// Вывод результатаstd::cout << "Arithmetic progression: ";for (auto num : progression)std::cout << num << " ";std::cout << std::endl;return 0;}