
Andrei
20.04.2016
21:22:15
Задавай вопросы без эмоций, получишь ответ без эмоций.

Penter
20.04.2016
21:25:27
Кривая как винда ME

Andrei
20.04.2016
21:25:45
Когда задают вопрос "почему этот вот код выводит это?", я смотрю в код и если он действительно выводит, то что вывел, я спрашиваю "а что должен если не это?" И хотя я понимаю, что вопрос был в том на самом деле "как работает этот код", я предпочитаю чтобы человек высказал своё предположение, потому что так быстрее найти изъян в его понимании, чем объяснять все целиком.

Google

Andrei
20.04.2016
21:26:09

Penter
20.04.2016
21:26:24

Andrei
20.04.2016
21:26:28
Взял никсовую какую-то либу и переписал для винды.

Penter
20.04.2016
21:26:28
И всегда был говном
Но
НАХУЯ
ФАСТСГИ ПОД ВИНДОЙ?

Andrei
20.04.2016
21:27:08
Что тебя смущает?
@PenterProKaos ?

Сергей
20.04.2016
21:31:01

Andrei
20.04.2016
21:31:17
Хаскелль знаешь?

Сергей
20.04.2016
21:32:03
Нет

Google

Penter
20.04.2016
21:32:46
Не Expected
А Exception
Если ты имел ввиду свой класс для неожиданных случаев

Andrei
20.04.2016
21:33:16
Нет. Я про expected
Как замену исключениям.

Penter
20.04.2016
21:34:25
Бля
Ну
Класс исключения?
Или что?

Andrei
20.04.2016
21:34:49
Короче, Сергей. Expected это обертка над возвращаемым значением, которая хранит либо его либо ошибку. В виде стринга или std::exception_ptr.
У неё как у монад есть биндеры
Биндер в который передается функтор от типа возвращаемого значения
Который вызывается в случае успеха
Или fail
В который передается ошибка
Понятно что такая штука как бы "заражает" все возвращаемые значения.
Поэтому там где уже обычный код мы руками можем чекнуть у expected-a в каком он состоянии и вызвать get или geterror
Собственно все.

Сергей
20.04.2016
21:37:05
Хм

Andrei
20.04.2016
21:37:14
Вместо throw у нас оьычный return

Google

Сергей
20.04.2016
21:37:19
Ага
Клево

Andrei
20.04.2016
21:37:28
Только в этот ретёрн конструируется спецобъект
И плюс там шаблонная магия позволяет делать ретёрн ожидаемого типа без приведения
То есть функция которая возвращала инт, стала возвращать Expected<int, std::string> например, но внутри тела все равно return 2; можно оставить.
Очень ускорило работу.
Бтв. Во многих языках именно такой механизм
Например в хаскеле монадический трансформер maybeT
Или в Rust
Там тоже нет исклбчений
И они имено в виде expectation-ов возвращаются.
Вот ссылка на пропозал о добавлении в стандарт плюсов этого класса

Andrei
20.04.2016
21:41:38
https://isocpp.org/files/papers/n4015.pdf
Кстати реализация Александреску норм, но мне не очень. Я бы делал более функциональную и менее тяжелую для эмбеддеда.

Alex Фэils?︙
20.04.2016
23:32:44

Square
21.04.2016
00:52:47
Во вы злые.
Че у нас можно из подкастов про разработку послушать, только не для новичков. I tunes u чухню предлагает
Хочу вдохновиться каким нить свежим архитектурным познанием

Admin
ERROR: S client not available

Square
21.04.2016
00:56:20
Не могу придумать толковый обмен данными между потоками. Нужно чтоб прям blazingly fast

Google

Square
21.04.2016
00:56:50
Минимум реаллоков :( локфри
Текущая реализация уныловата

arisu
21.04.2016
00:57:33
очереди сообщений

Square
21.04.2016
00:57:56
Zeromq? Медленно
У меня обмен указателями через локфри очередь
У выталкивающего потока на выходе буфер статический,читающие потоки по указателям собирают свои данные из буфера соседа. Вот колхоз вокруг этого буфера мне не нравится. Приходится следить чтобы читающий не догонял пишущего
Если навешивать сюда диспетчеризацию - скорость падает

Andrei
21.04.2016
01:17:44
Сколько чтецов?
Ридрайт мутех

Square
21.04.2016
01:27:36
Чтецов как правило 1-2 но может быть больше. Зависит от сценария
И перед тем как забрать данные читающий проверяет позицию пишущего
Это через атомик
В грубом приближении так
Вызодной буфер потока зациклен и поделён на 3 части...

Andrei
21.04.2016
01:29:37
Можешь локфри сделать
Перед и после буфера каунтер

Square
21.04.2016
01:29:51
Если вдруг оверфлоу, треть очищается. Если не успевает
В принципе скорость сейчас весьма не маленькая, но хочется ещё выжать

Google

Square
21.04.2016
01:32:21
Я б даже сказал что ядро системы чертовски быстрое и проблема уже в конкретных плагинах
К тому же отладка собственного локфри та ещё гыма. А в том же relacy разбираться и разбираться

Ned Ogl
21.04.2016
05:42:05
char array[10][80] = { { "Thomas", "Tolik","Morgan", "Adam","Alex", },
{ "8-800-2000-500","8-80543765-500","8-800454363500","8-800454350-500","32843242342000-500" } };
8-800-555-35-35

Плюшка
21.04.2016
06:35:47

$continue$
21.04.2016
07:12:16
Сейчас бы в 2016 под венду покодить.

ivario
21.04.2016
07:31:24