Vladislav
0/0 - nan
В инте? Впрочем, это один из правильных вариантов ответа
Alexander "SonnySlave"
Vladislav
где ты такое отхватил?
в олимпиадкокоде
Vladislav
Похоже на UB
да, именно
Egor
Ужс ккй
Vladislav
https://ideone.com/0TrcB4
Alexander "SonnySlave"
https://ideone.com/0TrcB4
ах это не весь кусок кода был)
Alexander "SonnySlave"
читер. в случае UB может быть всё что угодно
Александр
плюсую
Vladislav
ах это не весь кусок кода был)
ну кто-то же f вызывает)
Александр
сжечь читера
Alexander "SonnySlave"
Ответ от LLVM: <nbjoerg> zamazan4ik: clang is not that aggressive about exploiting UB
Alexander "SonnySlave"
ну что ж, придётся становиться
Vladislav
Alexander "SonnySlave"
хм, clang в компайл тайме gcd не считает
Alexander "SonnySlave"
непорядок
Vladislav
даже с std=c++17?
Alexander "SonnySlave"
даже с std=c++17?
без C++17 оно не скомпилируется просто 😊
Alexander "SonnySlave"
с C++ 17 есть std::gcd и std::lcm
Alexander "SonnySlave"
Вот вам для посмеяться: https://godbolt.org/g/9xLJZD
Alexander "SonnySlave"
Вот вам для посмеяться: https://godbolt.org/g/9xLJZD
если увеличите размер массива до десяти, то и clang начинает буксовать
Stanislav
Всем привет. Я тут один очень интерестный проект отрыл, но проблема в том что не могу его нормально скомпилировать и запустить. Даже не знаю в чем проблема. подскажите если сталкивались с такой же ситуацией. В проекте есть ReadMe и там сказано что нужно скомпилировать файл MakeFile, но при выполнении файла (в Ubuntu) при помощи команды "./MakeFile" выскакивает куча исключений (Мол Команды прописанных в данном файле не существует) Сейчас зальюсам проет. Самкод работает с OpenCv и определяет эмоции (Вдруг кому интерестно (= ) Умоляю, помогите запустить.
Stanislav
https://github.com/thearn/webcam-pulse-detector
Alexander "SonnySlave"
надо make, а не ./Makefile
чувак не крестовик, так что ему можно не знать)
Vladislav
в смысле?
у меня как возвращал константу, так и возвращает
Vladislav
а, не
Stanislav
чувак не крестовик, так что ему можно не знать)
Я первый раз с таким сталкиваюсь((
Nikita
если увеличите размер массива до десяти, то и clang начинает буксовать
Что-нибудь с лимитами по количеству операций при попытке сделать constexpr по своей инициативе?
vladislav
Я первый раз с таким сталкиваюсь((
Тебе @isenbaev уже указал на проблему
Stanislav
надо make, а не ./Makefile
Спасибо Огромное)))
Nikita
да, какие-то особенности внутренней реализации
Я такие лимиты сплошь и рядом у вижаковского intellisense вижу (под них и адаптирую шаблонные мап-редьюсы над списками типов)
Nikita
да, но компилятор штука всё же более сложные штуки делает
А вообще, долой эвристики, даёшь reinforcement learning
Alexander "SonnySlave"
А вообще, долой эвристики, даёшь reinforcement learning
ну... долой не долой, а это всё влияет на скорость генерируемого кода
Alexander "SonnySlave"
и чем больше всякого такого говна сможем оптимизировать или предпросчитать в компайл-тайме - лучше
Nikita
ну... долой не долой, а это всё влияет на скорость генерируемого кода
Так суть в том, что эвристики были выбраны абы как
Nikita
Пример с AlphaGo Zero показателен. Только у компилятора задача на порядки сложнее
Alexander "SonnySlave"
Даёшь компиляторы на нейронных сетях и б*****йне
Nikita
Я думаю, за этим реально будущее
Alexander "SonnySlave"
Stanislav
Тебе @isenbaev уже указал на проблему
У меня при компиляции выдает: "/usr/bin/ld: cannot find -lboost_system /usr/bin/ld: cannot find -lboost_chrono" Есть ли какой-то рецепт того, как с этим бороться?Простите, что глупые вопросы задаю, но внятного ответа в гугле не нашел( Если не трудно скажите, что это за файлы
vladislav
буст в общем поставь
Alexander "SonnySlave"
@antoshkka можно ли как-то ослабить требования на то, что компилятор может оптимизировать в плане выкидывания неиспользуемых обьектов? Вот пример: void foo() { std::vector<int> vec; } В Стандарте ведь уже разрешили заменять динамические аллокации на аллокации на стеке иногда 😊 Нельзя ли и тут что-то придумать?
Alexander "SonnySlave"
ибо сейчас мы так просто удалить такой вектор, как я понимаю, не можем
Viacheslav
А как такой вектор от RAII guard'a отличить в общем случае?
Alexander "SonnySlave"
Alexander "SonnySlave"
аб какое-то обмазывание контейнеров для подсказок компилятору
Vladislav
https://godbolt.org/g/jSXA4P
Alexander "SonnySlave"
https://godbolt.org/g/FXD3Jv
Vladislav
https://godbolt.org/g/FXD3Jv
ну, это уже сложнее)
Alexander "SonnySlave"
и не спрашивай меня, почему sort всё сломал
Alexander "SonnySlave"
просто вектор я проверил и раньше.
Vladislav
даже так ломается https://godbolt.org/g/iuV6LR
Vladislav
причем gcc даже догадался выпилить присваивание
Vladislav
но не сам вектор
Alexander "SonnySlave"
я не совсем могу понять логику работы компиляторов здесь
Alexander "SonnySlave"
@isenbaev , смотри, что за бред
Vladislav
Alexander "SonnySlave"
ой, стоп. погоди
Alexander "SonnySlave"
это я уже UB сделал
Vladislav
оптимизаторы в компиляторах состоят из чистой магии
Alexander "SonnySlave"
надо оптимизацию на new расширять и дальше
Alexander "SonnySlave"
типа пустой вектор они ещё удаляют, так как нет операции выделения памяти. А вектор с элементом уже не могут, так как вектор обязан выделить память из кучи, а это не оптимизируется, ибо запрещено
Alexander "SonnySlave"
а для string можем, так как там SSO
Vladislav
да, похоже что так