Vsevolod
Вообще, так любимая на собеседованиях задача про сумму дробных чисел с минимальной ошибкой не имеет полиномиального алгоритма
Vsevolod
(потому что все забывают про отрицательные числа)
Anonymous
В double точность теряется вот на этом моменте.
double a = 0.3;
Всё, мы уже потеряли точность.
Vsevolod
Только потому что он 2 based
Vsevolod
Был бы 10 based, нифига бы не потеряли
Anonymous
Потеряли бы на
double a = 1 / 7;
Vsevolod
Тут и fixed point не поможет
Anonymous
А вот rational спасёт.
Anonymous
Энивей, лично у меня процессор двоичный.
Anonymous
Если бы у бабушки...
Vsevolod
В rational не представить pi
Anonymous
С какой точностью тебе нужен pi?
Anonymous
22/7
Anonymous
179/57
Anonymous
1726375805/549522486
Этого хватит для любых практических нужд
Anonymous
2141273049928/681588380811, если ты принципиальный
Vsevolod
Кроме тригонометрии - или делать свою тригонометрию, с числителями и знаменателями
Anonymous
Вот тебе число пи.
Anonymous
1726375805/549522486
Anonymous
Но вообще тригонометрия довольно редко мне нужна. Ради неё можно поконвертить туда обратно.
mefest
Anonymous
Нет, конечно.
Anonymous
Но в rational можно точнее.
Dmitrii
В какой версии Boost'а io_service переименовали в io_context? 1.66?
Berkus
kitsu
gtest поддерживает substring ассерты или regexp?
Понятно, что можно через ASSERT_TRUE, но хочется что-нибудь более информативное в логах
Alexander "SonnySlave"
Alexander "SonnySlave"
Просто правильно называешь тест и всё.
Berkus
я думаю он хочет в s.substr(1,2) видеть что там на самом деле
kitsu
А чего хочется?
Есть некий билдер, который при невалидности параметров выкидывает ошибки (user-friendly)
Большинство и так норм по STREQ проверяются, но вот есть runtime инфой, вроде Your time is too old <time>
Alexander "SonnySlave"
А как он возвращает ошибки?
Alexander "SonnySlave"
Можешь сам ручками вывод написать
Berkus
> Your time is too old
твое время слишком старое?
kitsu
kitsu
kitsu
да просто полем в классе
Ну т.е есть билдер с набором методов set/add_<something>
И есть аггрегатор ошибок, типа std::vector<std::string>
Viacheslav
kitsu
можно конечно, но хочется просто вызвать assert_superassert
Berkus
Berkus
может ты чот не то делаешь
kitsu
ой, там много кода
ладно уж, пусть будет ASSERT_TRUE
Stanislav
https://blogs.msdn.microsoft.com/vcblog/2018/01/15/spectre-mitigations-in-msvc/
Александр
Знает кто, как решить мета-задачку?
Дано: T.
void foo(int, float)
void foo(bool, struct A)
...
Найти: U такое, что существует foo(T, U)
Александр
Навеяно: есть много функций, которые вместо U foo(T) делают void foo(T, U). Нужно делать вывод типов. В первом случае решается decltype(foo(std::declval<T>())), а вот во втором - хз
🐙 Antony
kitsu
Alexander "SonnySlave"
Свежий Conan 1.0.2:
http://docs.conan.io/en/latest/changelog.html
Крылатый
Anonymous
https://github.com/telegramdesktop/tdesktop/issues/2580#issuecomment-358009413
Давать латентную пощёчину девелоперам телеги — так в моём стиле...
Ignat
лол
Александр
Anonymous
https://github.com/procxx/kepka/pull/67
Anonymous
Да я вам руки поотрываю за такие ПР
Anonymous
Соржу ваше бьющееся сердце и сожгу ваше тело
Stanislav
Stanislav
Stanislav
Anonymous
всё, умничка
Дмитрий ⬡
Чуваки, а в чём суть форка?)
Matwey
Во всем хочу дойти до самой сути
Matwey
В работе, в поисках, в душевной смуте
Дмитрий ⬡
Это ж всегда самое интересное в форке — ну форкнулись, а от апстрима дифф руками читать это уныло.
Дмитрий ⬡
Thanks!
Alexander "SonnySlave"
Появилась полная программа C++Russia2018
http://cppconf.ru/
Berkus
Про UB тут хорошо написали
For example, if any C code stores through a bad pointer, the effects are undefined, which is to say, the language specification then allows anything to happen. Corruption potentially spreads through the whole program instantly, totally, and undetectably.
Vladislav
Evgenii
го патч к clang который рмрфит при ub
Berkus
Alexander "SonnySlave"
Alexander "SonnySlave"
так надо чтобы при всех UB
Vladislav
а как их детектить-то?)