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

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

Страницы: 14 5 6 7 8 9 Следующая »
#105
(Правка: 13:18) 13:12, 20 мар. 2019

kipar
В gcc смешнее - там разный результат на O0 и O2


#106
13:14, 20 мар. 2019

gudleifr
> Да, но это не проблема memcpy
Это проблема тебя, решившего его так использовать.

#107
13:18, 20 мар. 2019

1 frag / 2 deaths
> Это проблема тебя, решившего его так использовать.
Любого, кто решит его так использовать. Но, если он не полный идиот, он оценит границы применимости этого решения.

#108
(Правка: 13:21) 13:19, 20 мар. 2019

Ну и вдогонку:
https://rextester.com/PTV24939
вот так прикольнее:
https://rextester.com/OWU94667

#109
13:25, 20 мар. 2019

gudleifr
> Любого, кто решит его так использовать. Но, если он не полный идиот, он оценит
> границы применимости этого решения.
Смотри, в этой теме какой-то идиот вот что пишет:

gudleifr
> Дык, оно и есть. Заносите шаблон в начало буфера и memcpy его размножает.
что скажешь на это?

#110
13:28, 20 мар. 2019

gudleifr
Я вот подумал, если представить memcpy как нечто в духе:

void memcpy(void* dst, const void* src, size_t size)
{
  for (size_t i = 0; i < size; ++i)
  {
    ((byte*)dst)[i] = ((const byte*)src)[i];
  }
}
То действительно никакие ассерты тут не нужны.
#111
13:35, 20 мар. 2019

1 frag / 2 deaths
> что скажешь на это?
А что, шаблон не размножается?

nes
> Я вот подумал, если представить memcpy как нечто в духе:
Ну, как показывает, например, опыт того же FORTH. Сначала сделали CMOVE, а когда столкнулись с "размножением шаблона", добавили >CMOVE (которое копировало с конца).

#112
13:52, 20 мар. 2019

gudleifr
> А что, шаблон не размножается?
Ты ссылки смотрел?
> 1 2 3 4 5 1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Это что?

#113
13:57, 20 мар. 2019

1 frag / 2 deaths
> Это что?
Это глюк кривой библиотеки. Очевидно, если Вы хотите использовать некоторый функционал, Вы должны иметь реализующую его библиотеку. Нет?

gudleifr
> Но, если он не полный идиот, он оценит границы применимости этого решения.

Т.е. оценить границы применимости Вы не способны.

Или Вам просто пора в тему "для ругани меня"?

#114
14:03, 20 мар. 2019

gudleifr
> Это глюк кривой библиотеки.
Это ты кривой, а не библиотека. Библиотека соответствует спецификации.

#115
14:04, 20 мар. 2019

1 frag / 2 deaths
Я и говорю, Вам пора в профильную тему.

#116
14:06, 20 мар. 2019

nes
> Ну и какой поинт лепить 100500 ассертов в разных местах,
Для декларирования инварианта разработки.

> когда можно влепить один единственный внутриях самопальной memcpy?
Нельзя. У тебя там или ошибка должна вылазить, которая диспатчиться приложением, или аварийный расстрел приложения на месте, который предотвращает порчу или искажение данных. Что наиболее критично в релизе. Улавливаешь?

#117
14:06, 20 мар. 2019

gudleifr
Может тебе стоит почитать первоисточники? Например, что при программировании программы надо грамотно выбирать функции, читая их описание? Хотя причём тут программирование, это в любой инженерной деятельности так. Тебе даже "принеси-подай" на стройке нельзя доверить с таким подходом, будешь бетонный раствор в решете носить и говорить что решето неправильное, растров вытекает.

#118
14:14, 20 мар. 2019

1 frag / 2 deaths
Вам пора в профильную тему.

#119
14:15, 20 мар. 2019

1 frag / 2 deaths
> Библиотека соответствует спецификации.
Он не в курсе.
Не веришь - прямо спроси "какой спецификации соответствует библиотека"
(не, это слишком сложно) "соответствует ли библиотека A спецификации B?".
Я раз пять спрашивал, он как только говно не оттирал, а ответить не смог, лол.

Страницы: 14 5 6 7 8 9 Следующая »
ФлеймФорумПрограммирование