Vladislav
И что же, кто-то оплачивает рекламу этих статей из альтруизма?
Ioann_
Рекламу ? В самих статьях обычно рекламы нет. Ну я не особо в теме если что. Но в основном в статьях пишут что то в духе - если решишься то есть шанс что все выйдет, а если так и будешь сидеть сложа руки то не выйдет никогда. Вот типа такого. И ведь не поспоришь, но меня это мотивирует, честно говоря 0_0
Vladislav
Evgenii
omfg
Evgenii
https://github.com/DaemonSnake/unconstexpr
Александр
о, это тема, развитие идеи constexpr-counter'а
Stanislav
#cpp #cpp14 #pathfinding Compile-time templated A* pathfinding in C++14 http://lapinozz.github.io/learning/2017/07/17/compile-time-templated-a-star-pathfinding.html
Stanislav
еще до кучи
cyberzx 🇷🇺
Ну такие дела, юзайте STL, а еще лучше свое пишите
А зачем? Что бы устранить фатальный недостаток? )
cyberzx 🇷🇺
Если нужно быстро, то есть eastl. Люди уже построили свой быстрый велосипед, который довольно хорошо совместим со стандартом. Вот запустил у них бенчмарк для сета set<uint32_t>/clear | 34153 34.2 us | 18229 18.2 us | 1.87 + set<uint32_t>/count | 4035918 4.0 ms | 2072330 2.1 ms | 1.95 + set<uint32_t>/equal_range | 5552312 5.6 ms | 2314121 2.3 ms | 2.40 + set<uint32_t>/erase range | 24794 24.8 us | 23397 23.4 us | 1.06 set<uint32_t>/erase/pos | 68654 68.7 us | 65092 65.1 us | 1.05 set<uint32_t>/erase/val | 2953518 3.0 ms | 1313715 1.3 ms | 2.25 + set<uint32_t>/find | 4101919 4.1 ms | 1883549 1.9 ms | 2.18 + set<uint32_t>/insert | 5089335 5.1 ms | 2567506 2.6 ms | 1.98 + set<uint32_t>/iteration | 122013 122.0 us | 109022 109.0 us | 1.12 set<uint32_t>/lower_bound | 3810122 3.8 ms | 1883829 1.9 ms | 2.02 + set<uint32_t>/upper_bound | 4047652 4.0 ms | 1870908 1.9 ms | 2.16 +
cyberzx 🇷🇺
https://github.com/electronicarts/EASTL
Stanislav
https://github.com/electronicarts/EASTL
а профиты в чем? ну понятно что они его для игор делали
cyberzx 🇷🇺
1. контейнеры реально быстрее аналогичных в STL libstdc++ и libc++. С MSVC STL не проверял, но думаю, тоже быстрее. 2. у нас, например, много платформ: ps4, macos, win, linux. и очень удобно, что код на всех платформах одинаковый. к тому же можно заюзать С++14 фичи и не париться по поводу того, что их не завезли в STD либу на той или иной платформе
cyberzx 🇷🇺
обычно на маке, айосе всё древнее
cyberzx 🇷🇺
Да, добавляют и вполне своевременно. Хотя только stl. потоков, регэкспов, атомиков и прочего там нет
Stanislav
регекспы не оч вышли ) хз зачем взяли это в стандарт
Ioann_
Что много больше цифр у тебя
Ioann_
То есть заполнение разными элементами за 1.78
Ioann_
Не знаю быстрее или нет . Но протести плиз если не сложно тебе
Ioann_
В 1 потоке
cyberzx 🇷🇺
А зачем тебе там вообще красно-чёрное дерево?
Ioann_
Эээээ.... да много зачем. Я ж с сетками работаю :) Так много чего нужно ссортить и поддерживать в балансе.
cyberzx 🇷🇺
Если так нужен cache-friendly и нет или редки удаление объектов, лучше было бы в vector класть
Ioann_
А минимум как искать ?
cyberzx 🇷🇺
отсортировать его. у бинарной сортировки O(logN)
Ioann_
Ну там много вишек разных есть. Я иногда минимум в segment tree ищу
Danil
А минимум как искать ?
Возьми flat_map/flat_set
Ioann_
отсортировать его. у бинарной сортировки O(logN)
Не, у меня есть удаления :( Но вообще кое где я так и делаю - вектором. Делая неявные удаления.
Ioann_
Я все попробую и испробую. Будет выбран самый быстрый вариант.
mkots
Кто-то пробовал писать свою реализацию gre?
Anonymous
но зачем?
Anonymous
хотя можно джаст фо фан, рфц на полтора листа
mkots
Что-бы собрать vpn на базе voip
mkots
Вместо rtp засунуть свой хитрый gre
mkots
Ну и уехать на троллейбусе из хлеба, конечно
Anonymous
в гре нет шифрования, так что из vpn придётся убрать букву p
cyberzx 🇷🇺
А что такое реализация по стандарту? Стандарт, обычно, не описывает детали имплементации, а описывает интерфейсы и контракты.
cyberzx 🇷🇺
а кто мешает? )
cyberzx 🇷🇺
Такого там нет. Если в стандарте итераторы не должны инвалидироваться, то и в eastl тоже не будут. Просто реализация с упором на скорость
cyberzx 🇷🇺
а остальные реализации с упором на что?))
Есть множество критериев оптимальности. Скорость, память, размер кода, скорость компиляции и т.д. Создатели стандартных библиотек стараются не жертвовать чем-то одним в угоду другим и делают код, который всех более менее удовлетворяет
cyberzx 🇷🇺
Во-вторых, как ты себе представляешь контрибьютить в stl?
cyberzx 🇷🇺
Даже для такого гиганта как EA, я слабо представляю себе этот процесс. Ну вот нашли что-то, что не удовлетворяет gamedev в реализации stl от microsoft. EA к ним приходит такая, надо бы это переделать. У нас в гамедеве такое не катит. В NFS микрофризы и игроки страдают. А MS их посылает лесом, потому что... да много причин. Им, как минимум, вообще-то плевать А по мимо MS надо ещё кучу контор обойти. конзоли, линукс код и т.д.
Ioann_
Тут полностью с Ксеноморфом согласен :)
Evgenii
Во-вторых, как ты себе представляешь контрибьютить в stl?
нашел неоптимальное место в libstdc++ или libc++, поправил, отправил патч
cyberzx 🇷🇺
И ещё три года ждёшь, пока этот патч кто-то примет
cyberzx 🇷🇺
И опять же критерии оптимальности могут быть совершенно разными. В eastl::string не используется CoW, так как нафиг не нужен он в геймдеве никому. А может быть кому-то где-то CoW всё таки полезен и нужен.
Burado
Тут кто занимался нейросетями для распозавания? Можете подсказать кое-что, и, если есть возможность, поделиться исходниками?
Burado
Tesseract кароч не подошёл. Мне свою нейросеть над сделать.
Evgenii
а вообще полный гитхаб исходников
Burado
Та ещё бы шарить, что там написано. 70% без комментов.
Burado
Спасибо за конфу. Там гляну.
cyberzx 🇷🇺
прям как в libc++
Прям по всем пунктам описанным здесь? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
Evgenii
Прям по всем пунктам описанным здесь? http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
прям по каждому пункту единственный выход - пилить велосипед?
Ioann_
Велик пилится когда есть такая цель или нужда. Если цель - тр@хнуть каждый бит твоего железа, то вполне полезно если умеешь и написать.
cyberzx 🇷🇺
Ты наверное думаешь, что все раньше писали на STL и страдали, а потом в EA запилии свой STL из-за NIH синдрома? Нет, STL в геймдеве вообще не использовался. Слишком много у него было проблем для этой области. Просто в одной из команд EA решили собрать сделать хоть что-то, что бы разработчики не писали свои велосипеды, а использовали хоть что-то приближённое к стандарту. И им это удалось сделать на высоком уровне.
cyberzx 🇷🇺
И кстати EASTL это не просто замена STL, там есть много полезных контейнеров, которых нет в STL.
cyberzx 🇷🇺
Почему же их никто не решил в многомиллиардной индустрии?
Ioann_
А eastl собирать долго :?
Evgenii
Почему же их никто не решил в многомиллиардной индустрии?
ну ты еще спроси почему мира во всем мире нет
cyberzx 🇷🇺
А eastl собирать долго :?
секунд 5 наверное
Ioann_
Тада норм - ждите тестов
cyberzx 🇷🇺
https://github.com/electronicarts/EASTL/tree/master/include/EASTL смотри fixed_*, intrusive_*, vector_* и другие
Ioann_
А set там есть ?
cyberzx 🇷🇺
да