Berkus
жырный оффтоп
Gopneg
ща попробуем #define ACE_NO_INLINE значит...
сбилдилось. страдаю следующие ошибки....
Stanislav
меня больше позабавило что под разные студии надо фиксить разный код
хех, шлангу вот тоже пришлось фиксить код чтоб работало с последними студийными хедерами
Konstantin
я пробовал буст собирать шлангом на винде, в итоге шланг падает, на тикет никто не отвечает
Konstantin
а так пришлось кучу пул реквестов в бусте открывать чтобы компилялось
Konstantin
остальные библиотеки тоже не особо собираются, везде баги
Konstantin
короче как-то пока сыровато чтобы свитчится
Konstantin
5
Stanislav
а там есть баги да, он херово умеет в std vc++ 15.3+
Stanislav
пофиксили в 6ке
Konstantin
6 зарелизили?
Stanislav
пока рц2, поидее вот вот должны релизнуть
Stanislav
о, уже rc3 )
Konstantin
надо будет перепроверить может починилось в рц3
Stanislav
http://prereleases.llvm.org/6.0.0/
Egor
там уже заливают финальные бинарники, просто не объявили ещё
Stanislav
надо будет перепроверить может починилось в рц3
что то должно было починится, ибо проблема с хедерами студийными была даже в qt creator с включенным плагином clang code model они его юзают для парсинга файлов и анализа, встречается странный хедер процесс мрет они это починили запатчив 5.0 своими патчами но можно просто libclang.dll заменить на свежий
Stanislav
баготу можно словить в qtcreator 4.5, 4.6 уже пофикшено
Konstantin
https://bugs.llvm.org/show_bug.cgi?id=34436 нашел
Konstantin
вообще странно что у них ассерты включены в релизных билдах
Danil
Есть идеи как красиво и без макросни сделать is_complete<T> на с++03? https://stackoverflow.com/questions/1625105/how-to-write-is-complete-template - хотелось бы альтернативу
Berkus
03? всерьёз?
Danil
ну мне грустно, я согласен, но вдруг, есть что-то лучше...
Constantine
но имхо принципиально можно делать только static_assert на is_complete
Constantine
потому что любая специализация по is_complete крайне рискует словить ODR violation
Alexander "SonnySlave"
https://engineering.instagram.com/open-sourcing-a-10x-reduction-in-apache-cassandra-tail-latency-d64f86b43589
Alexander "SonnySlave"
https://github.com/mre/awesome-static-analysis
Constantine
Constantine
Вообще про производительность Java vs C++ была очень забавная история. Был один сервер, и на нем все работало примерно одинаково, пока не заметили, что плюсы компилируются без -O2
Constantine
Блин, я тут достиг полного просветления по поводу модели future/promises
Anonymous
-O2 и О3 сильно отличаются по скорости?
Anonymous
по размеру как я заметил разницы нету
Anonymous
в чем тогда прикол
Pepe 🐸
в чем тогда прикол
можешь почитать про них, иногда сильно иногда нет
Anonymous
можно в двух словах?)
Ignat
Не видел примеров, когда сильно
Anonymous
я читал недавно флаги которые активны к разным -О
Anonymous
но особо не понял ничего
Anonymous
все используют О2
Anonymous
а почему хз
Pepe 🐸
можно в двух словах?)
в двух словах О3 дополнительные оптимизации включает, по моему loops разворачивает или реорганизовывает и еще что то, но я уже не помню, в доках написано
Alexander "SonnySlave"
Не видел примеров, когда сильно
ну мб в математике сильно. там вроде в O3 включается fast-math
Ignat
Чё
Alexander "SonnySlave"
а нет, вру я
Ignat
Мне казалось, что там нет нарушающих-стандарт-оптимизаций
Alexander "SonnySlave"
это -ofast врубает fast-math
Constantine
Блин, я тут достиг полного просветления по поводу модели future/promises
Короче, после долгой медитации я понял, что принципиально речь идет о следующей математической модели. Есть некоторая once_callable_function f и набор ее параметров A, B, C, ... Функция f указывается сразу, каждый аргумент может быть записан не более одного раза Если все аргументы f записаны, то инструкция выполнить f передается исполнителю. Существует два принципиальных способа записи аргумента: отзываемая и неотзываемая. Запись аргумента обязательна. В случае отзываемой записи если аргумент записан, а потом отозван, то если исполнитель еще не начал вызов f то вызов f не произойдет.
Kirill
все используют О2
Я и дома и на всех работах -O3 собственно к черту полумеры
Constantine
Я и дома и на всех работах -O3 собственно к черту полумеры
Надеюсь на gcc? Там список багнутых эвристик длиной в километр
Kirill
Надеюсь на gcc? Там список багнутых эвристик длиной в километр
Gcc притом юзался по долгу службы и gnu arm none и gnu arm linux и под х86. Полет нормальный. Хотелось бы конечно шланг, но ни.
Kirill
И конечно же... Мингв :)
Constantine
> в MinGW strict weak ordering не выполняется для double
Anonymous
не устанавливаю студию из-за любви к gcc 😂
Constantine
Чета лень дальше вспоминать
Constantine
Мы же сейчас о разнице О3 О2 и полумерах :)
В O3 больше багнутых эвристик)
Kirill
В O3 больше багнутых эвристик)
Ок, мне везло. но они есть везде, вопрос в вероятности проявления.
Constantine
Ок, мне везло. но они есть везде, вопрос в вероятности проявления.
Вижак обычно багает в сторону "ниасилил оптимизировать"
Vergil
С наступающим, программерши и жены программистов!
Vergil
Не буду я козлом, ведь и некоторых программистов тоже поздравить надо. Пусть всё у Вас будет хорошо на личном фронте и с тыла!
Danil
потому что любая специализация по is_complete крайне рискует словить ODR violation
Да, в это и упираемся. Но очень хочется, чтобы не как статик ассерт было)
Berkus
а почему хз
потому что O3 это нестабильные оптимизации которые могут ухудшить код
Danil
А что вы хотите сделать?
Есть место, где очень хочется знать, что тип не полный и забросить дальнейшую проверку.
Berkus
Почему-то в документации gcc таких слов нет
Это чтобы идиоты всё собирали с O3 и страдали, Столлман любит шутки
Constantine
Есть место, где очень хочется знать, что тип не полный и забросить дальнейшую проверку.
Но прохождение этого места с полным и неполным типом уже ODR violation если проверка зависит от полноты типа
Constantine
Стремно там в общем, в любом случае(
На самом деле вы что-то делаете не так
Evgenii
Это чтобы идиоты всё собирали с O3 и страдали, Столлман любит шутки
собрал, замерил, выбрал лучший вариант из о2/о3