pavel
Господа, есть код:
std::set< T > zuzu;
it = zuzu.end();
++it; // bebebe
++it;
++it;
Будет ли после всего этого
(it == zuzu.end())
или будет UB уже на bebebe?
Samat
ub
Anonymous
Уже на бебебе, у тебя итератор после-после конца уже.
pavel
Ок, т.е. std::advance() может тебе выстрелить в ногу и надо параллельно проверять сколько осталось... Это печаль.
Oleg
Oleg
По стандарту - там обычный инкремент
Anonymous
Добрый день, у меня глупый вопрос, вообще не шарю в с++, но у нас все задания простые
Так вот, написали тело программы, как в лабе, класс, но при запуске программы выдаёт, что файл не найден, как быть?
Samat
Berkus
можно, бот забанил за флуд
Berkus
5 и больше сообщений подряд
🦥Alex Fails
да
Berkus
так, в ЭТОМ чяте - поднимите руку кто сидит на WinXP
Vitality
Ещё используем
Aleksandr
Vitality
Домашняя машина на Фен2 и Mac Mini 2010 с WinXP
🦥Alex Fails
так, в ЭТОМ чяте - поднимите руку кто сидит на WinXP
✋️ – 21
👍👍👍👍👍👍👍 100%
👥 21 people voted so far.
Berkus
о спс Алекс
🦥Alex Fails
Matwey
Alexander
Всем привет. Есть ли в этом чатике люди, которым приходилось сталкиваться с алгоритмом хаутауэра? (Hightower's Algorithm)
Хотел уточнить пару вещей в реализации
Maxim
У клиентов используется
Dolphin
Профи, прокомментите событие, курю второй день...
GCC 5.4, -Os
Dolphin
Dolphin
Другой вызов:
Dolphin
Berkus
Dolphin
почему постинкремент превратился в прединкремент, и почему разный код при одной оптимизации, например
Dolphin
И если я не прав, прошу наставления на путь :)
Berkus
Это мипс какой-то?
Pavel
в одном случае он думает что аргумент signed?
Dolphin
AVRка
Dolphin
uint16_t c2=0;
Dolphin
Pavel
это последствие
Dolphin
какое последствие?
Dolphin
это - (- 1) = +1
Berkus
А в каких регистрах передаются аргументы?
Dolphin
r25:r24
Pavel
загадочная душа оптимизатора. если работает то лично я не вижу причин удивлятся.
Berkus
Тогда я не вижу там преинкремнта, пост
Berkus
Пушо r24 перезаписыааетсч перед вызовом оригинальным значением
Dolphin
секунду...
вот запись вызова:
UART_Send(w_2_a(c2++));
Dolphin
1. компилятор должен вызвать внутреннюю функцию, с c2
Berkus
Да, это я прочитал
Dolphin
2. увеличить c2
Dolphin
3. вызвать внешнюю
Dolphin
или 2. вызвать внешнюю
3. увеличить с2
Dolphin
так?
Berkus
Ну он увеличил копию с2 а потом вызвал все со старым значением
Berkus
Надо спеку читать, я не знаю эту систему команд
Dolphin
Dolphin
он преинкрементил оригинал и начал вызовы
Dolphin
баг или фича? :)
Dolphin
так работает правильно:
UART_Send(w_2_a(c2));
UART_Send(b_2_a(c2));
c2++;
Pavel
ну надо саму функцию смотреть в каждом случае, может меняются регистры через которые передаются аргументы и там это не оригинал?
Pavel
зависит от того сколько раз функцию вызвали
Pavel
в одном такая оптимизация в другом такая
Berkus
Berkus
Что за компиль?
Pavel
или работает то всётаки не правильно?
Dolphin
Dolphin
Dolphin
Dolphin
Dolphin
так правильно
Pavel
ну вполне может и баг. я бы с такими вопросами сходил в мейлинг лист. у них там наверняка 3.5 программиста на весь авр компилятор )
Dolphin
Berkus
То же хотел предложить, проверь баглист
Dolphin
спасибо!
Vsevolod
подождите, а с чего вы взяли, что в f(g(x++)) f должен вызваться с инкрементированным x?
Vsevolod
где тут sequence point?
Vsevolod
судя по стандарту, это определено только в с++, но не в c
Vsevolod
At a function return, after the return value is copied into the calling context. (This sequence point is only specified in the C++ standard; it is present only implicitly in C.)
JBáruch
http://cppconf.ru/workshops/pavel-filonov
JBáruch
все же видели, да?
Thorn
Berkus
f(g(x))
++x;
валидная интерпретация в си
Berkus
v=g(x++)
f(v)
в с++
Thorn