Size: a a a

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

2020 October 16

ДЦ

Дмитро Цимбалюк... 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)
Мне вот тоже плюсы не нравятся)0)
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Дмитро Цимбалюк
ну чтобы для разных типов не было дублирования кода
если тебя так ебёт дублирование на уровне инструкций процессора, то тебе никто не мешает написать что-то вроде

template <class T>
T sum(T a, T b) {
   return a + b;
}

int main() {
   int a = 9, b = 7;
   double c = 8, d = 6;

   int s1 = sum<double>(a, b);
   double s2 = sum(c, d);
}
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Julian =) Coffee
Мне вот тоже плюсы не нравятся)0)
камин аут))0)0)
источник

AW

Alexander Wizaral in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
если тебя так ебёт дублирование на уровне инструкций процессора, то тебе никто не мешает написать что-то вроде

template <class T>
T sum(T a, T b) {
   return a + b;
}

int main() {
   int a = 9, b = 7;
   double c = 8, d = 6;

   int s1 = sum<double>(a, b);
   double s2 = sum(c, d);
}
и да, это c++17, там само типы выводит (уже не помню, можно ли так на стандартах ниже писать)
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
Можно
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Alexander Wizaral
если тебя так ебёт дублирование на уровне инструкций процессора, то тебе никто не мешает написать что-то вроде

template <class T>
T sum(T a, T b) {
   return a + b;
}

int main() {
   int a = 9, b = 7;
   double c = 8, d = 6;

   int s1 = sum<double>(a, b);
   double s2 = sum(c, d);
}
бтв, если убрать отсюда sum<double> , то это все скомпилится в просто два присвания в s1 16, а в s2 14.0
источник

AW

Alexander Wizaral 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)
Поставь флаг -O2 и эти функции исчезнут в принципе
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Так что дублирование кода довольно условное, особенно когда он может просто исчезнуть
источник

ДЦ

Дмитро Цимбалюк... 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)
Там даже есть оптимизации типа когда ты вычисляешь сумму арифметической прогресии через цикл, оно подставляет формулку для вычисления этой самой суммы
источник