Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 October 16

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
А, pmr, ладно
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
я глянул тот тетрис, это ересь
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
поддать сожжению
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Заинтриговал
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
так не в тетрисе прикол
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Просто полиморфизм это же круто
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Write once, ruin everything, run everywhere
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Ты же пишешь функции (пишешь же да?) чтоб не делать ctrl+c/ctrl+v.
Вот темплейты дают тебе сделать параметризацию не просто на уровне аргументов, а на урове типов.
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
обидно за что, нет в этом случае повторного использования кода
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
почему это
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
для абсолютно одного и того же, но разные типы, идет дублирование кода
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
ну до оптимизаций - да
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
после оптимизаций может еще и заинлайнится и выйти код с меньшим размером
источник

ДЦ

Дмитро Цимбалюк... in IT KPI C/C++ ХВ (не UB)
а вот тут поподробнее
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
ну вот как тот тетрис
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
ладно, не знаю за тетрис, давай лучше пример из чата выше :D
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Вот если б это делалось без темплейтов у тебя был бы код типа

int* sum_all(int* a, int *b, size_t len) {
     int* res = new int[len];
     for (size_t i = 0; i < len; i++) {
          res[i] = a[i] + b[i];
     }
     return res;
}

int main() {
   int* a = {4, 5, 6};
   int* b = {4, 5, 7};
   int* c = sum_all(a, b, 3)
}

И в тоге в мейне был бы какой-то код с джампами, сумированиями и всем вот этим.
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
А в коде выше (с темплейтами) у тебя сразу на этапе компиляции вычислится нужный список интов и в коде тупо будет результат, без лишних инструкций.
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Без понятия, кстати как это относится к параметрическому полиморфизму от темплейтов, но раз ты спросил про уменьшение кода, то вот.
источник