Anonymous
Я подозреваю, что сложновато, да.
🦥Alex Fails
Беркус как-то говорил о том, как это сделать, я забыл, как.
Ned
дада, в меня даже ссылками покидались
Ned
но руки не дошли разобраться до конца
Ned
тащем-та можно, но осторожно
kitsu
Можно как-нибудь элегантно объеденить std::transform+std::back_inserter и placement-new?
kitsu
а не, не выйдет
std::move-ом сделаю лучш
🦥Alex Fails
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
🦥Alex Fails
/extra #laststd Последний известный мне стандарт: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
nonentity
уже
nonentity
ахах
Anonymous
В нете списки есть открытых конф)
Matwey
Господа, а как бы вы назвали этот паттерн оптимизации?
https://github.com/oetiker/rrdtool-1.x/blob/279af9eed4ea4858607e19b43faed3bb2f6fa8c4/src/rrd_graph.c#L246
🐙 Antony
Замена деления на умножение с обратным числом?
Оно называется multiply by reciprocal, но в компиляторах работает только для деления на константы и при соблюдени множества условий
🐙 Antony
Или если вопрос про вынесение общей части нескольких выражений в отдельную переменную, то это common subexpression eliminantion
Vsevolod
нет, конечно же
Vsevolod
все статические переменные инициализируются по умолчанию нулем
Vsevolod
а в данном случае это просто убогость "архитектуры" rrd
Vsevolod
а никакие не оптимизации
Pavel
Matwey
Причем тут "по-умолчанию"?
Vsevolod
static int foo = 42;
Vsevolod
потому что по умолчанию
Matwey
Ну и в данном случае это не причем здесь.
Anonymous
Запусти в цикле static int n;
Anonymous
n++;
Matwey
static int foo;
///
foo = 42; // останется до следующего вызова
Vsevolod
это уже не объявление
Matwey
именно
Vsevolod
что именно?
Matwey
это именно не объявление
Vsevolod
и как это противоречит тому, что я сказал?
Matwey
и именно это и используется
Matwey
Vsevolod
конвертация из double в int тормозит в sse?
🐙 Antony
Vsevolod
в общем, rrd - это жуткая какаха. я в свое время плюнул копаться в этом, с позволения сказать, коде и написал свой rrd
🐙 Antony
конвертация из double в int тормозит в sse?
Conversion of a floating point number to an integer takes a very long time unless the SSE2
or later instruction set is enabled. Typically, the conversion takes 50 - 100 clock cycles. The
reason is that the C/C++ standard specifies truncation so the floating point rounding mode
has to be changed to truncation and back again.
🐙 Antony
так что нужен SSE2 как минимум
Vsevolod
да, но даже в арме с неоном это уже совершенно незначительная операция
Vsevolod
sse2 есть на любом актуальном процессоре
🐙 Antony
А вообще, щас посмотрим во что этот код превращается...
Vsevolod
точно на любом x86_64
🐙 Antony
Вот в такое превращается https://godbolt.org/g/iV7Mzi
инструкция divsd занимет от 4 до 32 тактов, в зависимости от поколения процессора
Georgiy
поиск у телеграмма честно говоря лютая херня
Georgiy
там не только с плюсами такая проблема
Georgiy
там вообще поиск сам такой
Georgiy
он сбоку выглядит как обычный grep :)
Billy
Господа, я не в курсе есть ли унас отдельно канал по конану. может и стоило чтобы был. но спрошу пока тут.
У меня есть либа A которая собирается и паблишится (сам делал). потом есть вторая B, которая используем первую, зависимость в py файле прописана.
Теперь у меня будет 3я, которая будет тянуть lib B.
Вопрос: Я правильно понимаю, что зависимости будут тянуться транзитивно ?
Если нет, то как сделать чтобы да?
спасибо
Anatoly
Billy
просто я не делал для либы B никакой файл текстовый с зависимостями. Я не понимаю, как он поймет, что для неё еще другая либа обязательна ?
То есть с одной либою B не слинкуется проект. А обязательна
Billy
Так, тут проблемка образовалась, может кто сталкивался. Я удалил локальный кеш. Делаю conan install и он качает но падает, потому что /conanfile.py: No subclass of ConanFile
Открываю файл, а он пустой
Billy
Кто-нибудь сталкивался с таким?
Для обоих либ что манифест, что питон пустые запаблишились :(
Олександр
@AlexFails на счёт пятничного бага с мониторами. Пришёл сегодня, а у меня винда не грузилась, только из безопасного режима смог откатиться на дамп 23-го января.
Ну и бага уже нет, похоже, что я в винде что-то сломал, когда с разрешениями игрался
🦥Alex Fails
Олександр
в общем, я там просто рандомно клацал на разрешения экранов, положения, их ориентацию. И масштабирование переставлял, но что именно привело к багу - не знаю
Олександр
лол😂
Georgiy
"плюсами" и греп найдет по слову "плюс", так как одно в другое входит
Berkus
март 2017
стандарт не в марте приняли а в котябре
🦥Alex Fails
Berkus
странно ожидать что за 2 месяца isocpp завалят статьями
Sergey
Так, нубский вопрос.
Если мы объявим конст статик переменную в функции и функцию будем дергать из разных потоков, как будет организована атомарность её инициализации под капотом?
Sergey
@antoshkka Антон
Berkus
Berkus
начиная, кажется, с 11 плюсов
Sergey
это я знаю, интересует как это обеспечивается (в гцц, например)
Sergey
или кланге
Berkus
через guard - обычно это мьютекс
Sergey
То есть, если я так сделаю стоит ли мне думать о том, что внизу мьютекс лежит?
Sergey
Спасибо
Egor
Вроде лежит. Но не только мьютекс — кажется, clang также добавляет некоторую переменную, чтобы уметь быстро проверять на инициализированность: https://godbolt.org/g/2TPNac
🐙 Antony
🐙 Antony
Иначе будет как писали выше - рекурсивный мьютекс в худшем случае
Berkus