Size: a a a

2020 June 07

R

Ruben in pro.cxx
Yarique Belgorodsky
используй плюсовые касты)
ок
источник

YB

Yarique Belgorodsky in pro.cxx
в ужасе https://en.cppreference.com/w/cpp/utility/launder
, который почти никто не использует,
описано, как сделать желаемое тобой без неопределённого поведения
источник

R

Ruben in pro.cxx
ок, а что насчет сериализации структуры? Можно ли пользоваться приведенным выше способом?
источник

R

Ruben in pro.cxx
я, и многие другие разработчики кого я знаю, так делают в С++. Потому что это очень экономичный способ работы с данными в буфере
источник

YB

Yarique Belgorodsky in pro.cxx
я знаю, что сейчас мало кто велосипедит )) и используют https://developers.google.com/protocol-buffers/
источник

R

Ruben in pro.cxx
у меня ембед и 3 мегабайта дискового пространства)
источник

R

Ruben in pro.cxx
а еще 8 метров свободной оперативы, и надо работать с пакетами, содержащими сотни килобайт данных. То есть допускать лишних копирований и держать где-то копии этих буферов нельзя, поэтому и используем такой способ, мапя структуру на буфер. А потом этот буфер отсылаем по сети и тп
источник

R

Ruben in pro.cxx
с gcc пока не было фейлов по этому поводу
источник

YB

Yarique Belgorodsky in pro.cxx
я бы проверил и на clang и параноидально тестами бы покрывал, если не подошли бы уже готовые решения по сериализации
источник

R

Ruben in pro.cxx
Yarique Belgorodsky
я бы проверил и на clang и параноидально тестами бы покрывал, если не подошли бы уже готовые решения по сериализации
TEST(IPCFramedProducerTests, StructureSizeTest) {
   CHECK_EQUAL(20, sizeof(Frame_t));
}
источник

R

Ruben in pro.cxx
насчет паранойи о составе структуры)
источник

R

Ruben in pro.cxx
способ обкатанный и сбоев в нашей практике не дает, но но если есть варианты негативного развития событий и иные причины, почему это может закончиться плохо — интересно услышать
источник

YB

Yarique Belgorodsky in pro.cxx
если ограниченно чисто платформ, то может не закончиться плохо
источник

YB

Yarique Belgorodsky in pro.cxx
Ruben
TEST(IPCFramedProducerTests, StructureSizeTest) {
   CHECK_EQUAL(20, sizeof(Frame_t));
}
почему не сделать проверкой времени компиляции?)
источник

YB

Yarique Belgorodsky in pro.cxx
если ты собираешь не на таргет платформе, а там где побольше мощностей
источник

R

Ruben in pro.cxx
да, точно. Надо переделать
источник

YB

Yarique Belgorodsky in pro.cxx
источник

YB

Yarique Belgorodsky in pro.cxx
источник

R

Ruben in pro.cxx
вместо alignof я предпочитаю использовать uintX_t, где гарантировано число байт
источник

YB

Yarique Belgorodsky in pro.cxx
я про то, что можно обмазать проверками времени компиляции
источник