Vladislav
(вероятностный он только в плане того что время его работы - O(n log n) в матожидании, решение он всегда точное находит)
vector0
Спасибо еще раз. Округлять в моём случае скорее всего не вариант.
Andrei
Есть алгоритм с динамическим кешированием, он имеет сраднее время линейное, худшее квадрат, но на практике самый быстрый на реальных данных.
Andrei
К тому же от попадания в квардрат можно сделать проверку.
Andrei
(в книжечке Скворцова так утверждается)
Constantine
странные ребята писали folly
Constantine
возвращают из utf8ToCodePoint U+FFFD если ошибка
Constantine
и в результате скипают этот код на выводе в json
Constantine
почему U+FFFF не вернуть?
Constantine
U+D800 на край
Constantine
кому вообще в голову пришло валидный кодпоинт как ошибку использовать?
Constantine
и, главное, константой объявить не судьба, так что править нельзя
Vladislav
возвращают из utf8ToCodePoint U+FFFD если ошибка
мотивейшн такой был: "This diff introduces a new option, skip_invalid, which replaces invalid chars with U+FFFD. http://en.wikipedia.org/wiki/Specials_(Unicode_block) seems to suggest that this is the correct replacement."
Constantine
а, хм, даже нормально пишут
Vladislav
почему не ffff - не хотят чтобы output был невалидным юникодом, вероятно
Constantine
ну да
Vladislav
а вы в продакшне folly используете?
Constantine
не, я просто сел почитать
Constantine
под пиццу
Vladislav
а, ок
Constantine
короче, меня как старого разраба напрягают такие вещи
Constantine
// As p catches up with q, move q forward. if (q == p) { // calling utf8_decode has the side effect of // checking that utf8 encodings are valid char32_t v = utf8ToCodePoint(q, e, opts.skip_invalid_utf8); if (opts.skip_invalid_utf8 && v == U'\ufffd') { out.append(u8"\ufffd"); p = q; continue; } }
Constantine
это из json парсера
Constantine
вообще, пишущий это вообще-то уверен, что ему вернули невалидный код
Vladislav
Есть алгоритм с динамическим кешированием, он имеет сраднее время линейное, худшее квадрат, но на практике самый быстрый на реальных данных.
слушай, а как можно триангуляцию за линейное время в среднем делать? Ведь к ней сводится сортировка
Andrei
Там строится более простой разбиение, квадтри например, из которого запрос точек — O(1)
Andrei
http://e-maxx.ru/bookz/files/skvortsov.pdf
Andrei
страница 32
Vladislav
Там строится более простой разбиение, квадтри например, из которого запрос точек — O(1)
а, то есть что-то, аналогичное bucket sort'у получается, если посмотреть на сведение
Andrei
Ага, оттуда и линия.
Vladislav
понятно, круто
Berkus
тогда будет new и delete
если убрать unique_ptr то откуда они возьмутся
Berkus
странные ребята писали folly
не странные а фейсбук, там все takoe
Крылатый
https://www.youtube.com/watch?v=bQ5X5iCYzSs
Constantine
Max
Сахар для SFINAE?
А)(уенно для кортежей, метапрограммирования
Deleted Account
у миня сирьёзная сипипи проблема https://ideone.com/2qnYHm смотреть compilation info
Александр
или реализацию добавить
Александр
плюс s_instance где-то вне класса надо инициализировать
Deleted Account
плюс s_instance где-то вне класса надо инициализировать
да, сделал в cpp просто в неумспейсе SSM* SSM::s_instance = new SSM::SSM; и всё поченилос
Deleted Account
всем спс
Constantine
А)(уенно для кортежей, метапрограммирования
Метапрограммирование это то самое, что генерирует мне 20МБ объектник на Hello, world! .
Deleted Account
Метапрограммирование это то самое, что генерирует мне 20МБ объектник на Hello, world! .
Метапрограммирование это то что соберёт тебе только то что тебе нужно
Deleted Account
а не какогото абстрактноо всемогущего монстра от которого 90% работы нинужная
Constantine
Не понял сути
Это шутки про то, что вместо модулей компиляции делают сахар для SFINAE
🐙 Antony
Ага, а еще конструктор string в каждый файл
Метопрограммирование тут ни при чём. См "translation unit", "linkage", "linker" чтобы понять принцип работы
Александр
Подскажите, есть какие-либо обёртки для std::string или других non-trivially copyable, чтобы можно было обеспечить многопоточный доступ? Пусть и с загрузкой/сохранением. Я так понимаю, мне нужно подобие std::atomic
Constantine
Метопрограммирование тут ни при чём. См "translation unit", "linkage", "linker" чтобы понять принцип работы
Да я понимаю принцип работы, только недавно у меня перестала в 10ГБ лезть сборка в один таргет и мне диск до 20ГБ пришлось увеличивать
Constantine
А можно пример кода? Что у вас такое происходит, что в 10 гигов не помещается?
Проект на плюсах не помещается. Потому что 250 файлов с достаточно активным использованием шаблонов скушают 2ГБ места объектниками и не поморщатся, причем в объектниках будет одна и та же хрень
Sheridan
Для поржать: Возникла проблема что приложение крашится при старте гдето внутри qt. Сутки, сука, искал. char сука **argv надо вместо char *argv[] и int сука &argc в QApplication отдавать вместо int argc
Constantine
А можно пример кода? Что у вас такое происходит, что в 10 гигов не помещается?
Например, шаблонный make_vector через variadic в каждом файле раскрыт, а файлов 300
🐙 Antony
Например, шаблонный make_vector через variadic в каждом файле раскрыт, а файлов 300
Какой компилятор используете и на какой платформе?
Constantine
Какой компилятор используете и на какой платформе?
Ms 2014 update 2, а что, хоть кто-то это пофиксил?
Constantine
Какой компилятор используете и на какой платформе?
Только не говорите заменить мне шаблонный make_vector через variadic на initializer_list, пожалуйста)
Constantine
Кстати, отличное решение :)
Ага, еслм учесть, что вектор не CopyConstructable типа
Constantine
И там ведь не только это, там синтез всех освновных шаблонных классов загрузчика ресурсов, или любого вектора, случайно пролезшего в достаточно глобальный заголовочный файл
Constantine
Нда, тогда вам помогут только Модули, которых еще нет :(
Так и я о том же. Боль со времен 98 стандарта - нет интроспекции. Боль всего 11 стандарта - нет модулей. А делают SFINAE
Constantine
Интроспекция обходится генераторами, а вот с модулями....
A
кто-нибудь сталкивался в бусте с -DBOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC ? была проблема с тем, что condition_variable использовала системные часы и при переводе времени назад wait_for висел дольше, чем надо проблема пофиксилась добавлением флага -DBOOST_THREAD_HAS_CONDATTR_SET_CLOCK_MONOTONIC но после этого в юнит тестах (на Ubuntu 16.04, x64) cv начала работать некорректно, wait_for вместо указанной одной секунды спит рандомное количество времени (около 15-20 секунд, когда как) кто-нибудь сталкивался с этим?
Constantine
Нда, тогда вам помогут только Модули, которых еще нет :(
На самом деле, планирую в более свободное время понаписать extern template на макросне на все подряд часто используемые шаблонные классы, проблема что надо по функциям с точностью до сигнатур писать
Anonymous
собрал проект с Qt для Mac Os X при запуске app бандла вылетает "Exception Type: EXC_BAD_ACCESS (SIGSEGV)" при этом если открыть бандл и запустить исполняемый файл напрямую - все ок, если запускать из IDE тоже все ок... может сталкивался кто с таким, под мак раньше не собирал?
Berkus
Стектрейс посмотри
Sheridan
Ты же в курсе что char ** и char*[] это технически одно и то же?
Дык а я ж про что )) скорее всего дело в ссылке на int, хотя с трудом представляю как это может помешать
Berkus
Что там вылетает - скорее всего null pointer deref, смотри где