Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / Магия шаблонов / 2 сообщений из 2, страница 1 из 1
01.09.2021, 19:37
    #40094579
shellye
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия шаблонов
Открыл тут для себя магию шаблонов

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#include <iostream>

template <int n> struct Fib
{
    enum { val = Fib<n - 1>::val + Fib<n - 2>::val };
};

template<> struct Fib<0> { enum { val = 0 }; };
template<> struct Fib<1> { enum { val = 1 }; };


int main() {
    std::cout << Fib<0>::val << std::endl;
    std::cout << Fib<1>::val << std::endl;
    std::cout << Fib<2>::val << std::endl;
    std::cout << Fib<3>::val << std::endl;
    std::cout << Fib<4>::val << std::endl;
    std::cout << Fib<5>::val << std::endl;
    std::cout << Fib<6>::val << std::endl;
    return 0;
}




Можно попросить объяснить на пальцах что тут за магия такая происходит ?
...
Рейтинг: 0 / 0
01.09.2021, 19:54
    #40094587
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия шаблонов
shellye,

Обычный маджик рекурсивный шаблон с частичной специализацией по значению и CTFE =)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Магия шаблонов / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]