Constantine
в частности, поэтому в его версии для C++98 использовалась структура из двух даблов, чтобы гарантированно получить sizeof не 1
Roman
Anonymous
Всем привет, генерирую значения через srand(time(NULL)); если запускать каждый раз щаного программу, значения разные, стоит запустит в цикле на генерацию более 1 значения идут одиковые, сменил на srand(1), более 1 го значения все разные, но если запустить программу заного все значения повторятся...
Дмитрий ⬡
Anonymous
Ок, спасибо, сейчас исправлю.
Roman
устанавливай seed только на запуске
Constantine
Я это уже видел
Max
Всем привет, кто-нибудь сталкивался с кросс-компиляцией? нужно на armv5 собрать dropbear
Max
В этом вся и трудность, собирать то я все думаю на iP камеру и как бы я не старался, запустить у меня не удается, я уже месяца 2 над этой проблемой торчу (сам js,python и с# программист), поэтому с такими задачами не сталкивался, тулчейн брал для hi3518 процессора в камере такой установлен, вскрыть прошивку было не сложно, остается только собрать этот dropbear и наступит счастье в моем огороде
Roman
в чем проблема сборки?
Roman
ошибки при компиляции? не стартует?
Danil
Max
ошибок нет при компиляции, просто не стартует dropbear
Roman
с отладчиком ходил с точки входа?
Roman
как зашиваешь?
Max
монтирую просто раздел компа и оттуда запускаю
Danil
glibc, начиная с 2.24 не поддерживает ядра меньше 3.2 емнип
Roman
что говорит загрузчик?
Danil
вещи касательно таргет архитектуры и ее особенностей правильно заданы?
Danil
Roman
лог загрузчика наверное в сериал порт стриммит лог
Max
да, все указано верно. В dropbear uclibc стоят как и на камере
Max
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
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++
Alexander "SonnySlave"
Matwey
я предлагаю добавить функцию std::undefined_behavior(), вызов которой будет - UB
Anonymous
Constantine
какой этот случай?
формально the behavior of the program is undefined в случае вызова с true
Constantine
Matwey
иногда у пользователя будут удаляться файлы на диске :)
Alexander "SonnySlave"
аа, вы рофлите. понял
Constantine
я совершенно серьезно
Alexander "SonnySlave"
ну тогда ты болен
Constantine
ну тогда ты болен
нет, я хочу написать функцию, которая преобразует int в диапазоне '0'..'9' в соответствующую цифру
Roman
i + 0x30 ?
Alexander "SonnySlave"
и?
Constantine
и?
https://godbolt.org/g/H9ZLCg
Александр
Constantine
Александр
не гуглится
это не стандарт, но есть в 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
ага
Alexander "SonnySlave"
Anonymous
это на авке чата админ ?
Dr. Friedrich
Это фаундер
Алексей
vladislav
икона
Constantine
Constantine
вот, именно это я хочу
Constantine
в стандарт
vladislav
в чём профит?
Constantine
сравни код
Александр
Matwey
Ну так компилятор редуцирует всё до return c - '0'