
Andrew
23.05.2018
16:02:40
Да

Constantine
23.05.2018
16:03:52
ну вот, и хочется иметь возможно без регистрации и смс получать
data_button_state = button_state_engined<data_engine>
slots_for_button_state = button_state_engined<slot_engine>
slot_for_button_state = some_byelement_operation<button_state_engined, data_engine, slot_engine>
т.е. получать на вход слота data_button_state и раскидывать на входы поэлементно объявленных слотов

Google

Andrew
23.05.2018
16:04:41

Сиие
23.05.2018
16:05:32

Andrew
23.05.2018
16:06:25

Constantine
23.05.2018
16:06:31
это потребует глобального объявления компараторов и так далее

redl1ne
23.05.2018
16:06:57
Подскажите как перезаписать контекст потока процесса не ппибегая к помощи winapi
Грубо говоря setcontextthread только самописный. Есть где то реализация / алго?

Andrew
23.05.2018
16:07:33

Constantine
23.05.2018
16:07:36

Andrew
23.05.2018
16:07:54

Egor
23.05.2018
16:08:11

Constantine
23.05.2018
16:08:15
На самом деле я могу объяснять на другом XY уровне, просто объяснять будет достаточно долго

Сиие
23.05.2018
16:08:21

Constantine
23.05.2018
16:08:35
Сигнал-слоты здесь как раз близкое по сути

Сиие
23.05.2018
16:08:53

Google

Andrew
23.05.2018
16:08:56

Constantine
23.05.2018
16:09:08
Кратко: нельзя писать ВСЁ button_state при желании записать только button_state.default по причинам просадки производительности в миллиард раз

Сиие
23.05.2018
16:10:10
Ага
ну как сказать, а как вы будете записывать когда у вас все три будут тру, а ктогда два первых тру и фолс? магии не будет, один параметр - один разряд

Constantine
23.05.2018
16:10:25
Потому что настоящая подложка будет не сигнал-слотовой, а реактивной с потенциально долгим расчетом, и там нельзя фильтровать оповещения

Andrew
23.05.2018
16:11:04

Сиие
23.05.2018
16:11:45
Ага
тем более если вы захотите поменять одно значение вам прийдётся узнать предыдущее состояние, а в случае с регистром просто одна побитовая операция

Andrew
23.05.2018
16:14:14
Осознал все плюсы подобной структуры
А пока действительно только эдаким битсетом можно обойтись и нормальным хендлером запросов
И табличкой: "работает - не трогать!"

Сиие
23.05.2018
16:20:01
И табличкой: "работает - не трогать!"
да не нужна там табличка, если посмотреть как это правильно писать. Используешь макросы и всё понятно, даже фнкции не нужны толком
#define BUTT_ST_EN 1«1
if(state&BUTT_ST_EN) - do some

Constantine
23.05.2018
16:20:39

Andrew
23.05.2018
16:20:55

Сиие
23.05.2018
16:23:27

Constantine
23.05.2018
16:23:34
в гуе есть куча примеров, например, контракт передачи данных окна-предка окну-потомку
struct child_info_type {
int dpi;
space_enum space; /*элемент перечисления, изначально завязанный на монитор, влияющий на выбор текстовок*/
std::shared_ptr<const renderer_config_type> renderer_config; /*совокупность настроек цветовой гаммы, клавиатурный индикатор*/
};

Andrew
23.05.2018
16:23:41

Constantine
23.05.2018
16:24:10
ой поправил

Сиие
23.05.2018
16:24:13

Andrew
23.05.2018
16:24:41
Ну это холивар, но если использовать Гугл стайл

Google

Constantine
23.05.2018
16:25:51
сейчас бы про макросы похоливарить

Сиие
23.05.2018
16:26:00

Constantine
23.05.2018
16:26:33
угу, еще в 2018 константы макросами объявлять, причем кривыми

Andrew
23.05.2018
16:26:50
Я сам иногда прибегаю к чистому С и действительно иначе нельзя

Constantine
23.05.2018
16:27:21

Сиие
23.05.2018
16:28:23

Alex
23.05.2018
16:29:24

Andrew
23.05.2018
16:29:28

Constantine
23.05.2018
16:29:36

Andrew
23.05.2018
16:30:09
Увы, нет
А что возможно сделать только макросами?

Constantine
23.05.2018
16:30:24
у меня пишется some_exception(UTILS_HERE)

Сиие
23.05.2018
16:31:08

Andrew
23.05.2018
16:31:55
В том что это препроцессор который втупую ищет совпадения в коде

Сиие
23.05.2018
16:32:11

Constantine
23.05.2018
16:32:26
вы же используете for, зачем, если есть while?

Google

Сиие
23.05.2018
16:32:56

Constantine
23.05.2018
16:33:17

Сиие
23.05.2018
16:33:53

Constantine
23.05.2018
16:34:12
я не умеют в do - while, не пользуюсь
я уверен, что while (1) с выходом посередине читается лучше

Сиие
23.05.2018
16:34:59

Constantine
23.05.2018
16:35:14
можно пример?)

Сиие
23.05.2018
16:35:37

Constantine
23.05.2018
16:35:50
пример это что-то похожее на код

Сиие
23.05.2018
16:36:02
да можно иначе, но можно и так

Constantine
23.05.2018
16:36:24

Сиие
23.05.2018
16:37:56

Constantine
23.05.2018
16:39:27
не совсем понял, ну да ладно, там можно и ексепшенами сделать, можно и функцией с ретурнами, а можно ду вайл 0, все пути
auto button_item = [&] () {
if (is_null(image))
return representation::make_button(std::move(text), std::move(button_state), std::move(options));
if (is_null(text))
return representation:::make_button(std::move(image), std::move(button_state), std::move(options));
return representation::make_button(std::move(image), std::move(text), std::move(button_state), std::move(options));
}();
еще примеров?)
подпрограммы - топ2 использование лямбд по частоте


Владислав
23.05.2018
17:50:47
https://github.com/facebook/infer/releases/tag/v0.14.0 у нас тут плюсы заржавели

Alexander
23.05.2018
18:35:31

Владислав
23.05.2018
18:39:24

Alexander
23.05.2018
18:39:43

Google

Владислав
23.05.2018
18:40:14
Энивэй, это очень свежая фича, я даже описания внятного насчёт неё не нашёл

Max
23.05.2018
18:49:29
А вот такой вопрос: у меня есть некая коллекция, в которую клиент может засунуть объект и вместе с ним - time_duration, после которого этот объект должен прокиснуть. Можно ли как-нибудь это реализовать без постоянно занятого треда, который бы оббегал всю коллекцию и сверял время?
Объектов много — потенциально миллионы. Время тоже любое, от нескольких секунд до нескольких часов.
хочется какой-нибудь epoll на таймерах :)

Max
23.05.2018
18:50:43
каким то образом отсортировать по времени протухания и чтобы к времени протухания первого элемента в коллекции чтото просыпалось и его удаляло

Владислав
23.05.2018
18:50:45
condition variable?

Max
23.05.2018
18:51:03

Владислав
23.05.2018
18:51:16
гугли как с ним работать

Max
23.05.2018
18:51:50
я знаю, как с ним работать. Я не втыкаю, кто должен оповещать.ю

Max
23.05.2018
18:52:40
если тебе надо удалять из коллекции прямо сразу после протухания тогда нужен тред
если можно лениво то можно сделать при обращении к коллекции

Max
23.05.2018
18:53:16
Лениво нельзя. Память занимает.

Владислав
23.05.2018
18:56:17
найди минимальный td, поставь тред на ожидание с cv, который по истичению проснётся и удалит нужный елемент. Дальше повторить

Constantine
23.05.2018
18:57:29
угу, и priority_queue вам в руки
если неотзываемые

Max
23.05.2018
18:59:00
Минус очереди в том, что придётся постоянно пересчитывать таймауты. По истечению и при добавлении/удалении элемента.

Constantine
23.05.2018
19:00:01
вы хотите одно и то же число вычесть из всех элементов очереди?
как только у вас возникает такое желание, просто ничего не вычитайте