
Baruch
14.06.2018
18:32:03
если, конечно, вы вообще хотите

Alexander
14.06.2018
18:34:36
@MasterZiv

Alex Фэils?︙
14.06.2018
18:35:37
@anatolijs пиу

Ilia
14.06.2018
19:06:19

Google

Baruch
14.06.2018
19:06:50
Блин, конечно!
супер. Я у Clion-овских ребят спросил не хотят ли они захостить в Jetbrains

Ilia
14.06.2018
19:11:30
Тут у нас вот что грядет:
Piter United.
IT Global Meetup #13.
Итоги встречи:
1. ITGM#13 состоится 28 июля 2018 года (дата уточняется с площадкой)
2. Место проведения: база отдыха Райвола (п. Рощино) http://www.raivola.spb.ru/
3. Слет будет однодневный (желающие смогут остаться с ночевкой)
4. Время начала слета 10.00 (реальное начало программы в 12.00), окончание 21.00 этого же дня
Можно и туда вписаться.

Baruch
14.06.2018
19:14:55

Ilia
14.06.2018
19:19:11
Спсб

Dmitry
14.06.2018
22:14:05
допустим, у меня есть
typedef struct {
uint8_t number;
char text[50];
char bigtext[200];
…
есть ли какой-то встроенный механизм копирования структуры в «копактной» форме, т.е. если number=1, text="a", bigtext="b", то я хочу получить что-то вроде 1, 'a', '\0', 'b', '\0'

Max
14.06.2018
22:18:47

Dmitry
14.06.2018
22:19:55
нет, упаковать в пакет и передать

Max
14.06.2018
22:21:47

Dmitry
14.06.2018
22:23:30
ок, посмотрю, поддерживается ли packed
а обратно также можно?

Google

Max
14.06.2018
22:25:38
да, только тебе надо удостовериться что бы буфер имел такой же алайн, что и структура (если статически аллоцируешь - alignas, динамически - https://en.cppreference.com/w/cpp/memory/align ) ну и в структуре не должно быть полей, которые implementation-defined.

Dmitry
14.06.2018
22:26:55
всё статически будет, это embedded

Max
14.06.2018
22:27:00
и порядок байт конечно. на двух концах провода он должен быть одинаков.
а вообще если это что-то более серьезное, чем для себя, советую посмотреть в сторону протобуфов
откуда и куда передаешь?

Dmitry
14.06.2018
22:27:30
с одного МК на другой

Max
14.06.2018
22:29:16
тогда ИМХО можешь тогда обойтись сруктурой, атрибутом packed, alignas ( https://en.cppreference.com/w/cpp/language/alignas ) и кастом от/к uint8_t * . CRC не забудь прицепить :)
сериализатор катать конечно надежнее, но такты потеряешь

Dmitry
14.06.2018
22:30:20
ок, благодарю

Denis
14.06.2018
22:30:21

Max
14.06.2018
22:30:33

Denis
14.06.2018
22:30:37
вот вот

Max
14.06.2018
22:32:03
тогда надо спросить Дмитрия - "компактнее" это с т.з. кода или по потребляемой памяти (на буфер передачи)?

Dmitry
14.06.2018
22:32:20
по каналу

Denis
14.06.2018
22:32:28
ну тогда сериализатор

Max
14.06.2018
22:32:41

Alexey
14.06.2018
22:35:50

Max
14.06.2018
22:37:00

Dmitry
14.06.2018
22:44:12
ну flatbuffers они сами по себе большие.
мне пока нужно с десяток небольших пакетов сериализовать-десериализовать.
походу, проще руками

Alexey
14.06.2018
22:46:36
в смысле объем после сериализации? ну тогда ASN.1 ?
хотя не сказал бы, что оверхед у flatbuffers какой-то прям огромный. особенно если прямо структуры серилизовать рутом а не таблицы.
если у тебя на обоих концах Си, то это прокатит.
https://github.com/dvidelabs/flatcc

Google

Alexey
14.06.2018
22:49:15
вот он - умеет. остальные - нет
https://github.com/dvidelabs/flatcc#fast-buffers
вот, так точнее

Dmitry
14.06.2018
22:58:26
в ASN.1, как я понимаю, вместе с данными передаётся их тип
а мне просто «лишние» '\0' из строк вырезать нужно
с одной стороны будет C, а с другой или C, или Java
мне кажется, такие либы довольно сильно увеличат кодовую базу и обвязка либы будет сопоставима с ручной сериализацией. вышеописанную структуру можно, кажется, сериализовать строк в десять (с форматированием)
но за ссылку благодарю

Alexey
14.06.2018
23:05:51
если что, это была ссылка на сишный flatbuffers. у него особенность реализации, что root-типом может быть struct, таким образом не будет никакого оверхеда (ни типов в серилизованных данных не будет, ни vtable).
flatbuffers хороши тем, что сгенереный код не зависит от какого-либо рантайма. это получается header-only файлики. ни с кем не нужно линковаться.
как-то так.
в общем, советую пощупать, если даже в этом проекте тут не удастся это использовать, то потом эти знания вполне могут пригодиться.

Aidar
15.06.2018
03:30:18
Используй magic_get

Antony
15.06.2018
08:58:09
Мы тут подумали, и решили на сегодняшней встрече РГ21 https://events.yandex.ru/events/cpp-party/15-jun-2018/ сделать мини бонус: обсудить бумаги в стиле EWG. С голосованиями, полноценными обсуждениями, стенографированием заседания и возможностью повлиять на предожение :)

Дед Пегас
15.06.2018
08:58:33
ЪЪЪ

Igor
15.06.2018
09:00:38

Constantine
15.06.2018
09:00:41

Antony
15.06.2018
09:02:41

Igor
15.06.2018
09:04:23

Antony
15.06.2018
09:04:24

Constantine
15.06.2018
09:04:50

Matwey
15.06.2018
09:16:37

Alexey
15.06.2018
09:17:24
Алиса пока не годится? :-)

Constantine
15.06.2018
09:17:39
Я подозреваю, что сейчас не очень много специалистов по набору на аналоговой печатной машинке. А стенография ручкой, кажется, пишется, по листу бумаги

Google

Antony
15.06.2018
09:17:39

Matwey
15.06.2018
09:18:21
Чем ручкной на бумажке

Constantine
15.06.2018
09:18:40
Ручкой на бумаге можно быстрее клавиатуры набирать

Matwey
15.06.2018
09:20:11
Большиниство журналистов на пресс-конференциях пользуются ноутами и планшетами, наверное не от хорошей жизни
Ну да ладно, я развел тут оффтоп как обычно

Constantine
15.06.2018
09:20:59

Matwey
15.06.2018
09:21:38
Я бы хотел посмотреть на человека который упирается в 800 знаков...

Nikolai
15.06.2018
09:25:09

Constantine
15.06.2018
09:25:41
Это что за журналиги такие __
Ну у меня был знакомый автомеханик со скоростью набора 500+ :) У меня русский на коротких ~400, на длинных ~350, английский литературный то же -50

Дед Пегас
15.06.2018
09:26:23
Знаю одну кассиршу с мегаскоростью набора.

Nikolai
15.06.2018
09:32:28

Constantine
15.06.2018
09:33:07

Nikolai
15.06.2018
09:34:07

Alexey
15.06.2018
09:36:59
На макбуках современных с их новым механизмом "бабочкой" и уменьшенном ходом клавиш набор будет еще быстрее?

Аттрибутивно-ассоциативный ряд
15.06.2018
09:37:44
на новых мак буках отвратная клавиатура

Andre
15.06.2018
09:37:48
Только за счет возможности проскользить разве что

/dev
15.06.2018
09:38:32

Andre
15.06.2018
09:38:34
Cherry MX Red, кстати, дадут прикурить любым ножницам

Google

Аттрибутивно-ассоциативный ряд
15.06.2018
09:38:46
+
коллега сидит рядом с такой, стучит на весь этаж, херачит по стопицот локов кода в минуту

Дед Пегас
15.06.2018
09:39:54
Ребят. Да, давайте перенесём эту дискусию во флудилку. Она годная, но это оффтоп. =)

Александр
15.06.2018
10:25:43

Egor
15.06.2018
11:08:42
clang ast->c/c++ не умеет?

Alexander
15.06.2018
11:09:02
ну или через ту же телегу

Ilia
15.06.2018
11:55:32
допустим, у меня есть
typedef struct {
uint8_t number;
char text[50];
char bigtext[200];
…
есть ли какой-то встроенный механизм копирования структуры в «копактной» форме, т.е. если number=1, text="a", bigtext="b", то я хочу получить что-то вроде 1, 'a', '\0', 'b', '\0'
Есть magic_get кстати.
Напоминаю.
Это НЕ встроенный механизм (его как раз НЕТ), это библиотека для создания таких вещей одним взмахом волшебной палочки...

Игорь
15.06.2018
12:06:11