@ProCxx

Страница 2352 из 2477
Alexander
17.09.2018
09:29:12
в libc++ всякого говна бывает

Igor
17.09.2018
09:29:40
в libc++ всякого говна бывает
имхо, утверждение применимо к любой стдлибе)

Ilia
17.09.2018
09:29:47
В нашем проекте boost::regex раза в три быстрее чем std
Ну да, я тоже думаю, что это -- очень смелое заявление.

Kitsu
17.09.2018
09:29:53
В нашем проекте boost::regex раза в три быстрее чем std
но почему они тогда не в дев ветке(

Google
Nikita
17.09.2018
09:29:56
1) Бенчи есть? 2) а есть инфа насчёт libstdc++?
Насколько я понимаю в маке используется libstdc++

но почему они тогда не в дев ветке(
Потому что ещё одна буст либа)

Ilia
17.09.2018
09:30:13
Nikita
17.09.2018
09:30:46
По поводу бенчмарков использовал Google benchmark, не сохранил код к сожалению

Kitsu
17.09.2018
09:30:51
Потому что ещё одна буст либа)
-lboost_system достаточно же, не?

Alexander
17.09.2018
09:30:59
Насколько я понимаю в маке используется libstdc++
эммм, почему там libstdc++? то есть компилятор шланг, но билдят с libstdc++?

Ilia
17.09.2018
09:31:08
Kitsu
17.09.2018
09:31:15
Для чего?
для регулярок буста

Ilia
17.09.2018
09:31:43
для регулярок буста
На сколько я помню, должно быть что-то типа -lboost_regex

Nikita
17.09.2018
09:31:49
-lboost_system достаточно же, не?
Просто ещё одна зависимость не оправдывала профитов

Alexander
17.09.2018
09:32:15
Вроде да, 100% сказать не берусь
мне тут подсказали, что по умолчанию вроде бы там libc++ берётся

Вроде да, 100% сказать не берусь
https://docs.brew.sh/C++-Standard-Libraries

Google
Ilia
17.09.2018
09:32:50
Вроде да, 100% сказать не берусь
Ну вот я и говорю, что ты даже не знаешь , какая там либа RegEx одна, и какая другая (версия буст) тоже не говоришь, но уверен, что одна другой быстрее.

Alexander
17.09.2018
09:33:12
но я против Boost.Regex имею то, что она дырявая

Alexander
17.09.2018
09:33:35
(хотя в последних версиях её уже значительно подправили)

Ⱪonstantin
17.09.2018
09:42:08
В итоге ты получишь k*O(N) или O( K*N )
правильно написанная имплементация регулярок использует внутри конечный автомат и работает за линию для любового входного текста и любой сложности регулярки. Хотя проблема может возникнуть, если регулярка будет слишком большая и тупо не влезет в кэш процессора

В итоге ты получишь k*O(N) или O( K*N )
если написать регулярку на отъебись, так что она работает как back-tracking, то да, будет работать как O(K * N) или хуже

Alexander
17.09.2018
09:43:15
жаль, что автомат строится в рантайме

Ⱪonstantin
17.09.2018
09:44:41
жаль, что автомат строится в рантайме
можно написать имплементацию регулярок на шаблонах, магии или препроцессоре и построить в компайл-тайм или упаковка-билда-тайм или установка-сервиса-на-продакшен-тайм или когда угодно. Это вопрос имплементации

Spoonson
17.09.2018
09:44:46
два раза выполнить одну и ту же регулярку - от этого сложность не изменится, и останется все той же линейной

Ⱪonstantin
17.09.2018
09:46:17
два раза выполнить одну и ту же регулярку - от этого сложность не изменится, и останется все той же линейной
для случая K регулярок длины L и длины текста N, препроцессинг будет K * L * L + время работы K * N для случая 1 регулярки длины L*K и длины текста N препроцессинг будет K*K*L*L и время работы N

Ilia
17.09.2018
09:46:53
Ладно, мы спорим ни о чём, и ходим по кругу. А вопрос уже решён

Spoonson
17.09.2018
09:50:06
для случая K регулярок длины L и длины текста N, препроцессинг будет K * L * L + время работы K * N для случая 1 регулярки длины L*K и длины текста N препроцессинг будет K*K*L*L и время работы N
я согласен, что проходов по тексту может быть больше, просто сложность то по прежнему линейная от длины текста. Одна регулярка скорее всего будет лучше.

Google
Ⱪonstantin
17.09.2018
10:27:17
какой же страх внутри
auto regexp = "^([abc]+|xyz).+$"_pre;но снаружи красиво

Alexander
17.09.2018
10:27:52
auto regexp = "^([abc]+|xyz).+$"_pre;но снаружи красиво
да, снаружи красиво. не спорю ?

касательно regex - вот кстати хороший докладик на эту тему https://www.youtube.com/watch?v=N_rkHzhXueo&t=2s&index=62&list=PLHTh1InhhwT7J5jl4vAhO1WvGHUUFgUQH

Alexander
17.09.2018
10:39:33
https://apolukhin.github.io/papers/constexpr_regex.html
да, знаем про этот пропозал ?

из того, что я нарыл - Boost.Regex версии 1.5X примерно соизмерим по перфомансу на каком-то кейсе с реализацией в libstdc++, но в 4 раза быстрее того, что тогда было написано в libc++. Почему так - надо разбираться

Александр
17.09.2018
11:22:07
Кто знает, почему std::from_chars для wchar_t не существует? ?

Igor
17.09.2018
11:36:02
@antoshkka, или вообще хоть кто-нибудь, это я наркоман или буст? https://wandbox.org/permlink/zsIjeuy7ld80k4KA

Igor
17.09.2018
11:39:04
ну как бы да, в std оно не матчится, std::smatch.empty() == true; std::smatch.size() == 0 в бусте boost::smatch.size() == 2; smatch[0] == smatch[1] == "" буст успешно взрывает мне мозг последние полчаса

Matwey
17.09.2018
11:39:58
Адругие версии boost?

Igor
17.09.2018
11:40:16
потому что я на свою голову понадеялся на if (!match.empty()) и погряз в отладке

Адругие версии boost?
в проекте 1.55, эффект тот же самый

> Postconditions: If the function returns false, then the effect on parameter match is undefined лол, чо

Yarique
17.09.2018
11:44:39
в проекте 1.55, эффект тот же самый
Так это олдовый бустец, в boost asio, например, многое из boost 1.55 в boost 1.68 - deprecated.

> Postconditions: If the function returns false, then the effect on parameter match is undefined лол, чо
Норм вещь, чтобы не платить за то что не используешь - всё по правилам c++

Google
Igor
17.09.2018
12:05:21
ну и для полноты коллекции, cppreference про ту же функцию > Returns true if a match exists, false otherwise. In either case, the object match is updated, as follows: > If the match does not exist: match.ready() == true; match.empty() == true; match.size() == 0

Matwey
17.09.2018
12:05:57
Чтобы не было вот такого вот как у тебя

Antony
17.09.2018
12:17:01
Попробуйте закинуть это тикетом в Boost.Regex именно написав, что расходится поведение в std и boost тикет закидывать вот сюда: https://github.com/boostorg/regex

Antony
17.09.2018
12:21:40
Закрыли его на добавление новых багов. Теперь только через github

Alexander
17.09.2018
12:25:12
Закрыли его на добавление новых багов. Теперь только через github
отличные новости. следующий на очереди - CMake'фикация

Matwey
17.09.2018
12:25:41
отличные новости. следующий на очереди - CMake'фикация
А сразу после этого - переписывание Boost на Rust

Alexander
17.09.2018
12:25:59
А сразу после этого - переписывание Boost на Rust
а зачем? и так всё работает как-то

у раста вон там своя экосистема растёт. им ни к чему)

Matwey
17.09.2018
12:26:17
а зачем? и так всё работает как-то
Для большей злобности

Antony
17.09.2018
12:29:50
Ilia
17.09.2018
13:31:21
Есть кто работал с BLAS на С ?

Vladislav
17.09.2018
13:46:42
На работе эрегировался такой вопрос: Дана структура. В структуре, посредством конструктора, инициализируются её поля. При первом прочтении эта конструкция выглядит как класс. Так, может лучше объявлять все структуры классами? Но тогда придётся заводить геттеры и сеттеры, и код разрастётся, казалось бы. Что делать? Как поступаете вы?

Pavel
17.09.2018
13:48:07
после эрегирования остается только фалломорфировать

Pavel
17.09.2018
13:48:54
а вообще класс от структуры отличается дефолтным доступом и наследованием. чо все с ними носятся..

Vladislav
17.09.2018
13:49:06
после эрегирования остается только фалломорфировать
Остаётся только кончать с данным вопросом.

Страница 2352 из 2477