Alexander
просто байты не шлем, не пробовали
Yury
попробуйте
Egor
Тогда можно будет понять, поможет ли "мгновенная" сериализация или на самом деле беда в другом месте
Egor
При этом, конечно, не стоит писать код заново, а достаточно просто заменить функции (де)сериализации на функции, возвращающие какие-то конкретные константы. Тогда вся "обвязка" вокруг останется прежней
Yury
может socket flush какой не делаете
Egor
Если после замены (де)сериализации на возврат констант станет работать вместо 70мс, скажем, две, то можно думать. Если станет работать 65, то лучше подумать про что-нибудь другое
Egor
Возможно это вообще не в коде дело, а, скажем, ОС на этом девайсе переключает потоки раз в 70мс и не чаще.
Alexander
ок, понял, спс
Aidar
просто метамагией можно
Александр
просто метамагией можно
метамагией можно новый variant изобрести
Aidar
метамагией можно новый variant изобрести
тебе просто надо сгенерить список типов type<val> для всех val из enum class
Александр
Александр
нужно вручную дописывать новое значение в enum, дописывать template <> struct ololo<enum::new_value> { using signature = ... }:
Aidar
только все val из enum class не получить метамагией
че это?, max() известен и еще известно какие сабститьютнулись а какие нет
Aidar
в крайнем случае max можно в enum class упихать
Александр
пройдись по ним циклом и выведи для каждого заданную сигнатуру/вызови шаблонную функцию с T = сигнатуре
Aidar
пройдись по ним циклом и выведи для каждого заданную сигнатуру/вызови шаблонную функцию с T = сигнатуре
у тебя там есть template <> struct callback_id_to_signature_mapping<callback_id::resize> { using type = void(int w, int h, int x, int y); };
Aidar
я не говорил что сигнатуру можно както определить
Александр
я понимаю, с учетом заданной сигнатуры
Aidar
ты можешь определить существует ли callback_id_to_signature_mapping<V>::type
Александр
ага, мысль понял. то есть мы заставим компилятор проверять наличие инстанцированных шаблонов для всех значений из [std::numeric_limits<std::underlying_type_t<Enum>>::min(), std::numeric_limits<std::underlying_type_t<Enum>>::max()]?
Aidar
да, но можно упихать их прям в енумкласс
Aidar
ну-ка, enum class Q : uint8_t { a = 8, b = 0, c = 210 };
ты всеравно так не сделаешь же
Aidar
в здравом уме
Александр
ну это понятно..
Aidar
чтобы компилилось быстрее
Александр
если запихать туда MIN, MAX, то идея хорошая
Александр
но ведь мы рассчитываем на дураков
Aidar
поидее можно сделать статический регистратор колбеков ваще
Yury
Если известны сигнатуры, чем плохи boost/signals?
Anton
на работе JIRA; дома Trello и GitHub Issues; и плагин Tasks к саблайму
А в Jira можно прикрутить трейсер тех требований и наоборот, чтоб он там сам всё отслеживал?
Andrei
у кого-нибудь есть эта книга, перевод стандарта? http://www.ozon.ru/context/detail/id/138724118/ Можете что-нибудь о ней сказать?
Alexander "SonnySlave"
Andrei
Есть. А зачем она тебе?
А для чего книги берут? Справочник/читать, в коллекцию.
Andrei
Посмотрел, что стандарт в оригинале почти 200$. а этот первый переведенный, но неполный. А вот насколько неполный, не могу понять, Насколько хорошо переведен - тоже не могу понять
Alexander "SonnySlave"
А для чего книги берут? Справочник/читать, в коллекцию.
Справочник - есть онлайн драфт, со ссылками. Удобнее по нему ориентироваться. Читать - ну хз, если тебе так нравится читать Стандарт 😊 В коллекцию - можно брать.
Alexander "SonnySlave"
Alexander "SonnySlave"
даже смайлики есть 😊
Andrei
Ради колллекции, конечно. Небольшую библиотеку собираю технической литературы (и не толкьо). Стараюсь фундаментальные вещи брать, но вот стандарт с++ - тоже хороший экземпляр)
Andrei
Окей, спасибо!
Alexander "SonnySlave"
это всего лишь часть 😞
Andrei
а китайских копий нет?
поищи, может найдешь
Dr. Friedrich
а китайских копий нет?
По-моему, можно самому собрать правильный стандарт с гитхаба
Dr. Friedrich
Там только собранных PDF'ок не дают, так ведь?
Dr. Friedrich
Хотя не, я запутался. Репозиторий называется draft: https://github.com/cplusplus/draft
Alexander "SonnySlave"
Alexander "SonnySlave"
http://eel.is/c++draft/
Alexander "SonnySlave"
только это драфт
Aidar
14-е вроде слиты в торенты
Дмитрий ⬡
Так черновики рабочая группа выкладывает
Дмитрий ⬡
Их читать можно)
Shadrunov
Привет! Немного оффтопа, извиняюсь, если что. Посоветуйте ide\редактор для убунты, чтобы было удобно рефакторить код.
Shadrunov
@supapro
Спасибо
Oleg
Утверждение про потоки в линуксе в целом верное, но в данном случае бесполезное. Общая память как раз позволяет (при правильном подходе в большинстве случаев) не делать системные вызовы для их взаимодействия, чего как раз и не хочет делать @hombit.
Dr. Friedrich
А между процессами разве нельзя память пошарить?
Dr. Friedrich
Aidar
А между процессами разве нельзя память пошарить?
Пошалить память и общее пространство это разные вещи
Dr. Friedrich
Пошалить память и общее пространство это разные вещи
О, а в чём разница? Общая память дороже обойдётся?
Dr. Friedrich
Вот тут пишут, что оверхед практически нулевой: https://stackoverflow.com/a/14512554/2684760
Dr. Friedrich
Хех, название у функции забавное: shmat()
Dr. Friedrich
shared memory attach
Наверняка же сначала придумали сокращение, и только потом расшифровку. Как недавний FUCKWIT, к примеру.
Viktor
Это вообще из posix вроде
Dr. Friedrich
POSIX тоже могли весёлые люди придумывать!
Klaus
Когда-то линкер учитывал только первые пять букв названия функции...
Viktor
Хех
Aidar
Потенциально
Berkus
А между процессами разве нельзя память пошарить?
можно, достаточно в принципе одного мьютекса в этой пошаренной памяти и вперед
Alexander "SonnySlave"
Потенциально
да не потенциально. Просто если мы говорим про C++, то для взаимодействия потоков у нас в поставке есть средства если про IPC - то таких средств нет. Добро пожаловать в какой-нибудь Boost.Interprocess
Berkus
О, а в чём разница? Общая память дороже обойдётся?
нет, айдар просто не в курсе похоже