Size: a a a

2020 July 24

DP

Denis Paukaev in pro.cxx
disba1ancer
если хочешь переносимо хранить/передавать битовые структуры, то битовые поля плохая идея, либо вручную сериализовать, либо брать готовое решение, но не битовые поля структур
Любые структуры обычно надо руками сериализовать для хранения/передачи
источник

f

fulcanelly in pro.cxx
Denis Paukaev
Любые структуры обычно надо руками сериализовать для хранения/передачи
неправда
for (int i = 0;  i <= sizeof(*obj); i++ ) {
   void *byte = obj + i;
   fprintf(file, "%c", *(char*)byte);
}
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
fulcanelly
неправда
for (int i = 0;  i <= sizeof(*obj); i++ ) {
   void *byte = obj + i;
   fprintf(file, "%c", *(char*)byte);
}
А с битовыми полями в чем разница?
источник

f

fulcanelly in pro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
А с битовыми полями в чем разница?
sizeof не бывает float
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
fulcanelly
sizeof не бывает float
Как и размер структуры
источник

f

fulcanelly in pro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
Как и размер структуры
бывает если измерять в байтах
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
fulcanelly
бывает если измерять в байтах
?
источник

АК

Александр Караев... in pro.cxx
> pro.cxx
> структура занимает нецелое количество байт
источник

DP

Denis Paukaev in pro.cxx
fulcanelly
неправда
for (int i = 0;  i <= sizeof(*obj); i++ ) {
   void *byte = obj + i;
   fprintf(file, "%c", *(char*)byte);
}
Круто, а читать мы будем программой у которой другое выравнивание полей
источник

DP

Denis Paukaev in pro.cxx
Лучше не изобретать себе грабли на пустом месте а просто написать сериализацию, или взять уже готовые флатбаф/протобаф и другие варианты
источник

DP

Denis Paukaev in pro.cxx
fulcanelly
бывает если измерять в байтах
Даже если в битах измерять не бывает
источник

ПК

Побитый Кирпич... in pro.cxx
foo(params).then([p = std::move(params)]()
{
});

Я правильно понимаю, что в С++17 тут гарантированно сначала выполнится foo(params) (с телом функции), а потом только p = std::move(params)?
источник

DP

Denis Paukaev in pro.cxx
Побитый Кирпич
foo(params).then([p = std::move(params)]()
{
});

Я правильно понимаю, что в С++17 тут гарантированно сначала выполнится foo(params) (с телом функции), а потом только p = std::move(params)?
Чтобы выполнить кусок с then нужно сначала выполнить кусок с foo, кажется это будет валидно и до c++17
источник

ПК

Побитый Кирпич... in pro.cxx
Denis Paukaev
Чтобы выполнить кусок с then нужно сначала выполнить кусок с foo, кажется это будет валидно и до c++17
Я помню, что в С++17 как то фиксили такой chain execution в плане порядка вызовов
источник

ПК

Побитый Кирпич... in pro.cxx
Хотя мб на capture list это итак не влияло
источник

DP

Denis Paukaev in pro.cxx
Побитый Кирпич
Я помню, что в С++17 как то фиксили такой chain execution в плане порядка вызовов
Ну просто логически, чтобы вызвать then на объекте его нужно сначала создать, значит вызвать foo передать туда params, итп
источник

ПК

Побитый Кирпич... in pro.cxx
Denis Paukaev
Ну просто логически, чтобы вызвать then на объекте его нужно сначала создать, значит вызвать foo передать туда params, итп
Можно вычислить параметр для then (функтор) до вызова foo
источник

ПК

Побитый Кирпич... in pro.cxx
Если бы был такой код:
foo(params).bar(std::move(params));

ЕМНИП до С++17 тут можно было словить отстрел ноги.
У меня похожий случай
источник

DP

Denis Paukaev in pro.cxx
Побитый Кирпич
Если бы был такой код:
foo(params).bar(std::move(params));

ЕМНИП до С++17 тут можно было словить отстрел ноги.
У меня похожий случай
Ну мне в этом коде не понятно куда же замувается params)
источник

ПК

Побитый Кирпич... in pro.cxx
Denis Paukaev
Ну мне в этом коде не понятно куда же замувается params)
видимо в функтор
источник