Войти
ФлеймФорумПрограммирование

Почему сишные функции не обмазали нормальными ассертами?

Страницы: 1 2 38 9 Следующая »
#0
15:00, 19 мар. 2019

Вот например самая основа основ - memcpy.
Пример:

int a[10];
memcpy(a + 3, a, 20);
Функция успешно отрабатывает и всех все устраивает,
но тут явно будет перекрытие данных, неужели нельзя было добавить один сраный ассерт?
Что за школьный уровень?


#1
15:01, 19 мар. 2019

После такого все эти "Небезопасные функции" от мелкософта выглядят голимой пародией.

#2
15:05, 19 мар. 2019

nes
> Почему сишные функции не обмазали нормальными ассертами?
На тот момент еще не родилось поколение, считающее, что вместо того, что требуется, надо программировать тонны говнокода для ИПД.

#3
15:16, 19 мар. 2019

ассерты замедляют код, а в релизе под линуксом падают

#4
(Правка: 15:20) 15:19, 19 мар. 2019

nes
А смысл? Бывают моменты когда нужна максимальная скорость, а данные изначально правильно подготовлены..
Если нужно, то пользователь сам должен проверять эту фигню. Так что тут я не могу согласиться с твоими претензиями.

Ты же вроде писал обертки для всех используемых функций из стандартной бибилиотеки?

#5
15:21, 19 мар. 2019

Vlad2001_MFS
> А смысл? Бывают моменты когда нужна максимальная скорость
В этом случае ни один программист не станет пользоваться стандартной библиотекой.

#6
15:22, 19 мар. 2019

nes
> неужели нельзя было добавить один сраный ассерт?
Так добавь. Добавить всегда можно. Вынуть - нельзя.

#7
(Правка: 15:23) 15:22, 19 мар. 2019

gudleifr
Да, там далеко не все хорошо, но чем тебя не устраивает тот же memcpy?

#8
15:24, 19 мар. 2019

/A\
>ассерты замедляют код, а в релизе под линуксом падают
Ну если в ассерт упихнуть расчет каких нибудь КС или еще что-то накладное, то да.
А вот на счет линухов, ну сами себе злобные буратины.

Vlad2001_MFS
>А смысл? Бывают моменты когда нужна максимальная скорость, а данные изначально правильно подготовлены..
Ну ассерты тем и хороши, что в релизной сборке их нет.

#9
15:24, 19 мар. 2019

>Ты же вроде писал обертки для всех используемых функций из стандартной бибилиотеки?
Вот именно из-за них я и встрял опять, не могу придумать благозвучные лаконичные имена.

#10
15:25, 19 мар. 2019

beejah
>Так добавь. Добавить всегда можно. Вынуть - нельзя.
Я не состою в комитете стандартизации цэ++.

#11
15:27, 19 мар. 2019

nes
> Я не состою в комитете стандартизации цэ++.
Пользоваться ассертами могут только члены комитета стандартизации цэ++?

#12
(Правка: 15:46) 15:27, 19 мар. 2019

Vlad2001_MFS
> Да, там далеко не все хорошо,
Там все очень хорошо.

Vlad2001_MFS
> но чем тебя не устраивает тот же memcpy?
В местах, где требуется максимальная скорость обычно
1. отказываются от хранения данных в виде, требующем копирования;
2. максимальная скорость достигается оптимизацией десятка машинных кодов в единственном узком месте программы (и уборке ненужных операций в остальных местах).

#13
15:29, 19 мар. 2019

beejah
Вот чтоб пользоваться изобретаю велосипед с квадратными колесами, это хорошо?

#14
15:30, 19 мар. 2019

nes
> Вот чтоб пользоваться изобретаю велосипед с квадратными колесами, это хорошо?
Да. Дорога-то, благодаря этому, пока свободна - езжай, кто умеет!

Страницы: 1 2 38 9 Следующая »
ФлеймФорумПрограммирование