Дмитрий ⬡
Что они запрещают типу char иметь диапазон значений -32768 32767?
Никто не гарантирует что так, вон в новый стандарт хотят зафиксировать
Constantine
в частности, поэтому в его версии для C++98 использовалась структура из двух даблов, чтобы гарантированно получить sizeof не 1
Anonymous
Всем привет, генерирую значения через srand(time(NULL)); если запускать каждый раз щаного программу, значения разные, стоит запустит в цикле на генерацию более 1 значения идут одиковые, сменил на srand(1), более 1 го значения все разные, но если запустить программу заного все значения повторятся...
Anonymous
Ок, спасибо, сейчас исправлю.
Roman
устанавливай seed только на запуске
Constantine
Я это уже видел
Max
Всем привет, кто-нибудь сталкивался с кросс-компиляцией? нужно на armv5 собрать dropbear
Max
В этом вся и трудность, собирать то я все думаю на iP камеру и как бы я не старался, запустить у меня не удается, я уже месяца 2 над этой проблемой торчу (сам js,python и с# программист), поэтому с такими задачами не сталкивался, тулчейн брал для hi3518 процессора в камере такой установлен, вскрыть прошивку было не сложно, остается только собрать этот dropbear и наступит счастье в моем огороде
Roman
в чем проблема сборки?
Roman
ошибки при компиляции? не стартует?
Max
ошибок нет при компиляции, просто не стартует dropbear
Roman
с отладчиком ходил с точки входа?
Roman
как зашиваешь?
Max
в камере что крутится?
в камере linux 3, uclib, busybox, телнет имеется
Danil
в камере linux 3, uclib, busybox, телнет имеется
тулчейн твой собран так, чтобы ядро твоей версии поддерживалось?
Max
монтирую просто раздел компа и оттуда запускаю
Danil
glibc, начиная с 2.24 не поддерживает ядра меньше 3.2 емнип
Roman
что говорит загрузчик?
Danil
вещи касательно таргет архитектуры и ее особенностей правильно заданы?
Max
тулчейн твой собран так, чтобы ядро твоей версии поддерживалось?
да, собирал потому что openvpn, но там на некоторых камерах не запускается из-за нехватки памяти, отсюда и нужен dropbear
Roman
лог загрузчика наверное в сериал порт стриммит лог
Max
да, все указано верно. В dropbear uclibc стоят как и на камере
Max
arm-hisiv100-linux-uclibcgnueabi вот тулчейн сам, можно в инете легко найти, там первая страница на гитхаб ведет
Constantine
а существует какой-нибудь способ объяснить компилятору, что некоторый случай является принципиально UB?
Constantine
https://godbolt.org/g/H9ZLCg
Constantine
вот хочу, чтобы версии 2 были xor eax, eax
Aidar
тогда это будет defined behaviour
Aidar
никакого сюрприза
Anonymous
Вроде в стандарте описаны postcondition
в стандарте написано что после move объект должен находиться в валидном, не не обязательно известном состоянии. Имплементации могут делать что хотят включая состояние, в котором единственным, что можно сделать с объектом будет вызов деструктора
Anonymous
тем более что operator= может быть deleted :)
Александр
зависит от реализации.
то есть std::string s = "asd"; f(std::move(s)); s = "asd"; // UB ?
Александр
в жизни не поверю
Constantine
нет
Anonymous
нет
Constantine
@antoshkka держите идею: добавить функцию void std::undefined_behavior(bool condition = true), вызов которой с параметром true явно указывает компилятору, что этот случай рассматривать не нужно в принципе
Александр
нет
мой изначальный пост был конкретно к ситуации со строкой, а не ко всем классам C++
Matwey
я предлагаю добавить функцию std::undefined_behavior(), вызов которой будет - UB
Constantine
какой этот случай?
формально the behavior of the program is undefined в случае вызова с true
Matwey
иногда у пользователя будут удаляться файлы на диске :)
Alexander "SonnySlave"
аа, вы рофлите. понял
Constantine
я совершенно серьезно
Alexander "SonnySlave"
ну тогда ты болен
Anonymous
я предлагаю добавить функцию std::undefined_behavior(), вызов которой будет - UB
Мне больше нравится пропозал в котором предлагают избавиться от UB и сделать их все defined
Constantine
ну тогда ты болен
нет, я хочу написать функцию, которая преобразует int в диапазоне '0'..'9' в соответствующую цифру
Roman
i + 0x30 ?
Alexander "SonnySlave"
и?
Constantine
и?
https://godbolt.org/g/H9ZLCg
Alexander "SonnySlave"
https://godbolt.org/g/H9ZLCg
даже вчитываться не хчоу в этот кусок говна
Александр
не гуглится
это не стандарт, но есть в gcc вроде
Александр
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
Александр
__builtin_unreachable
Constantine
я хочу синтаксически int to_digit(int c) { std::undefined_behavior(!('0' <= c && c <= '9')); return c - '0'; }
vladislav
WTF
vladislav
FUCK THIS SHIT
Александр
if ('0' <= c && c <= '9') return c - '0'; __builtin_unreachable()
Constantine
ага
Anonymous
это на авке чата админ ?
Dr. Friedrich
Это фаундер
vladislav
икона
Constantine
вот, именно это я хочу
Constantine
в стандарт
vladislav
в чём профит?
Constantine
сравни код
Александр
!!!! https://godbolt.org/g/UUtYmv
у тебя там нули в обоих частях
Matwey
Ну так компилятор редуцирует всё до return c - '0'