@ProCxx

Страница 2125 из 2477
Алексей
11.06.2018
10:42:21
Хотя, у меня вполне определенно устанавливаются флаги

yuri
11.06.2018
10:43:05
забудьте char* как страшный сон. 2018 год на дворе.

Google
Алексей
11.06.2018
10:43:36
А что вместо него?

yuri
11.06.2018
10:43:53
std::string str; str.resize(...);

Vhäldemar
11.06.2018
10:44:11
а чо не вектор тогда?

yuri
11.06.2018
10:44:21
стринг проще

Vhäldemar
11.06.2018
10:44:23
если у человека бинарное

Алексей
11.06.2018
10:44:28
std::string str; str.resize(...);
Что то мне подсказывает, что строка тут не подойдет.

yuri
11.06.2018
10:44:35
пойдет-пойдет

Алексей
11.06.2018
10:44:46
пойдет-пойдет
бинарные данные, еще и неровные.

Anton
11.06.2018
10:45:07
стринг проще
Стринга обрамляется терминалом. Не вар.

Vhäldemar
11.06.2018
10:45:08
я не очень понимаю, ну взял человек стд с тринг

как он туда будет пихать 24 бита

Google
Vhäldemar
11.06.2018
10:45:50
и будет ли такое проще, чем чар*

Anton
11.06.2018
10:46:13
как он туда будет пихать 24 бита
И что? Ну будет резаться 8 бит с числа. Другая проблема -- порядок байт жеж.

Алексей
11.06.2018
10:46:22
Кстати, я думал на счет std::vector<char>, но вот тоже не понял, как туда упаковывать по несколько байт фрагменты

Vhäldemar
11.06.2018
10:46:36
ему в сокет надо записать 24 бита

(насколько я понял)

Алексей
11.06.2018
10:46:48
составленные из кусков разной длины

Anton
11.06.2018
10:47:05
Vhäldemar
11.06.2018
10:47:15
проблема

Алексей
11.06.2018
10:47:22
может просто взять bitset<72> и попробовать переключать со смещением?

»

Vhäldemar
11.06.2018
10:47:43
[In reply to Уладысь] а как потом установить целое скажем в 3 первых байта, а потом еще дальше?

Anton
11.06.2018
10:48:30
Vhäldemar
11.06.2018
10:48:44
внезапно

Anton
11.06.2018
10:48:48
Ну, это же на коленке делается.

Алексей
11.06.2018
10:49:00
Vhäldemar
11.06.2018
10:49:22
на коленке, кросс-платформенно, без особого понимания - я сомневаюсь

Алексей
11.06.2018
10:50:25
Мне главное разобраться бы, получить понимание как это работает

Google
Алексей
11.06.2018
10:50:36
Кстати на счет байтового потока, это void* ?

Mikhail Voronov
11.06.2018
10:51:54
как вариант

yuri
11.06.2018
10:52:05
void* еще хуже, чем char*. Мрак при отладке.

Anton
11.06.2018
10:52:27
Кстати на счет байтового потока, это void* ?
Это можем быть чем угодно. Хоть iostream, хоть fstream, хоть любой контейнер.

Vhäldemar
11.06.2018
10:53:20
https://pastebin.com/UZyCF53K

Алексей
11.06.2018
10:53:26
Это можем быть чем угодно. Хоть iostream, хоть fstream, хоть любой контейнер.
вцелом понятно. тупо поток из нетипизированных данных, правильно?

https://pastebin.com/UZyCF53K
Это что? Не совсем понятно

Упаковка разных типов в поток?

Vhäldemar
11.06.2018
10:55:49
интефейс

Anton
11.06.2018
10:55:56
Упаковка разных типов в поток?
Это уже сериализация как раз.

Vhäldemar
11.06.2018
10:56:03
сериализатора

вот чтоб с указателями и маллоком

Алексей
11.06.2018
10:56:32
Мне бы как то вот сейчас сделать, чтобы работало. А потом эти классы по борьбе с HTTP/2 доработаю полноценно.

Когда работу сдам)

Сейчас хоть char* хоть void*, лишь бы фреймы отправить нормально)

Ruslan
11.06.2018
10:57:45
Почитай стандарты хоть на UDP

Примерно поймешь подход

Mikhail Voronov
11.06.2018
10:58:45
Сейчас хоть char* хоть void*, лишь бы фреймы отправить нормально)
вот тут пример преобразования POD типов в/из std::vector<uint8_t> https://pastebin.com/1UbVrGrU

Google
Ruslan
11.06.2018
10:59:01
Главное оперировать байтами

Anton
11.06.2018
10:59:04
https://pastebin.com/1UbVrGrU
Ну, тип того. Я это делал (как-то) по уму. https://bitbucket.org/FlameTeam/libs/src/dev/src/Templates/Serialization.hpp

Ruslan
11.06.2018
10:59:08
А не сущностями

Mikhail Voronov
11.06.2018
10:59:39
Anton
11.06.2018
11:01:09
ну у тебя уже не совсем коленочное решение :)
Дык да. Но я делал для всего примитива с учётом возможного расширения.

Mikhail Voronov
11.06.2018
11:01:14
а вот так на коленке можно написать макрос для msvc/gcc для выравнивания: https://pastebin.com/kvEiWSWK

Alexander
11.06.2018
11:02:33
а вот так на коленке можно написать макрос для msvc/gcc для выравнивания: https://pastebin.com/kvEiWSWK
не могу вспомнить - есть пропозал на стандартизацию макроса для выравнивания

вроде как я раньше предалагал такую штуку. а то приходится веселиться каждый раз

Mikhail Voronov
11.06.2018
11:03:20
а для offset_of нет пропозала?

Алексей
11.06.2018
11:03:46
Спасибо, сейчас погляжу

Anton
11.06.2018
11:07:59
не могу вспомнить - есть пропозал на стандартизацию макроса для выравнивания
Расширение alignof/as? Лучше бы тогда сериализацию нормально бы сделать, а не (наколечные) велосипеды.

Alexander
11.06.2018
11:12:58
а она будет в лучшем слуаче через 5 лет

так что сорри, придётся страдать

зато вон там неожиданно лично для меня контракты продвинулись дальше

Dmitry
11.06.2018
11:44:41
template <typename T> constexpr inline const T &qMin(const T &a, const T &b) { return (a < b) ? a : b; } #ifndef min #define min(a,b) (((a) < (b)) ? (a) : (b)) #endif Подскажите, пожалуйста, в чем отличие?

Побитый
11.06.2018
11:48:24
А именно - первое гавно, второе - нет?

Alexander
11.06.2018
11:48:43
А именно - первое гавно, второе - нет?
именно так. NOMINMAX тольк бы не забыть включить

Anton
11.06.2018
11:48:46
так что сорри, придётся страдать
А чего страдать, если заранее всё уже навелосипежено. :) Если что-то серьёзное мутить, то да, рефлексия была бы лучшим вариантом.

Google
Vhäldemar
11.06.2018
11:49:06
Alexander
11.06.2018
11:49:20
А чего страдать, если заранее всё уже навелосипежено. :) Если что-то серьёзное мутить, то да, рефлексия была бы лучшим вариантом.
вся нормальная рефлексия, что я видел, делается через жопу, простите. Ну и магия аля magic_get прикольная, но маловато

Александр
11.06.2018
11:49:22
А именно - первое гавно, второе - нет?
/report разжигание ненависти

Group Butler [beta]
11.06.2018
11:49:23
Alexander
11.06.2018
11:49:35
/report разжигание ненависти
он чот не работает

Александр
11.06.2018
11:50:03
да я знаю. это так было, возмущение

Anton
11.06.2018
11:52:22
вся нормальная рефлексия, что я видел, делается через жопу, простите. Ну и магия аля magic_get прикольная, но маловато
Я к тому, что сериализация делается на данный момент только через потоки с перегрузкой операторов для своих типов. Compile time а-ля magic_get тут не поможет.

Chiveson
11.06.2018
13:16:42
к вашему разговору выше vector<uint8_t> to tuple<int,int> кастить или memcpy?

Anton
11.06.2018
13:18:31
Chiveson
11.06.2018
13:20:00
Чего-чего? Переведи на русский.
Chiveson: есть у меня данные из сокета, записал их в вектор, нужно мне это все перевести в tuple для удобного использования

Mikhail Voronov
11.06.2018
13:20:48
а зачем tuple?

Chiveson
11.06.2018
13:21:01
ну в struct foo

Vhäldemar
11.06.2018
13:22:03
https://stackoverflow.com/questions/28410697/c-convert-vector-to-tuple

гугл запретили?

Chiveson
11.06.2018
13:25:52
Alexander
11.06.2018
13:48:15
И на всякий случай - чат для новичков @supapro

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