Size: a a a

2020 November 04

АР

Андрей Руссков... in pro.cxx
ну, например если Foo/Bar  не являются standard layout
источник

IA

Ilia Abernikhin in pro.cxx
Честно вот не могу сказать на верняка, но он память выделеную под структуру теоретически должен выравнивать
источник

IA

Ilia Abernikhin in pro.cxx
Правда хрен его знает до чего он ее выравнивает
источник

IA

Ilia Abernikhin in pro.cxx
Могу сказать точно, in.read((char*)&S, sizeof(S)) работает
источник

IA

Ilia Abernikhin in pro.cxx
Я через такие структуры читаю бинарные файлы
источник

IA

Ilia Abernikhin in pro.cxx
Просто копируя масив битов в адрес структуры
источник

IA

Ilia Abernikhin in pro.cxx
И дальше аждая переменная в структуру инициалицирована уже правильным значением
источник

IA

Ilia Abernikhin in pro.cxx
Но у меня все типы в структуре чтандартные, для не стандартных не проверял
источник

IA

Ilia Abernikhin in pro.cxx
Не знаю
источник

АК

Александр Караев... in pro.cxx
Ilia Abernikhin
Могу сказать точно, in.read((char*)&S, sizeof(S)) работает
"Работает" - не аргумент в C++
источник

IA

Ilia Abernikhin in pro.cxx
Я же не говорю что это не кастыль
источник

IA

Ilia Abernikhin in pro.cxx
Это костыль
источник

IA

Ilia Abernikhin in pro.cxx
Но оптимизирует неплохо
источник

IA

Ilia Abernikhin in pro.cxx
Либо я 12 флоатов гружу по очереди
источник

IA

Ilia Abernikhin in pro.cxx
Либо 50 байт кряду
источник

IA

Ilia Abernikhin in pro.cxx
И все уже в структуре
источник

DS

Dmitry Sokolov in pro.cxx
Андрей Руссков
грубо говоря, может ли быть так, что Foo и Bar раскладываются в совершенно разные регионы памяти?
Если и есть, то не в стандарте, а в ABI наверное. Например ia64  гарантирует.
источник

АР

Андрей Руссков... in pro.cxx
Ilia Abernikhin
Могу сказать точно, in.read((char*)&S, sizeof(S)) работает
хихи но это как раз UB для не-is-standard-layout
источник

АР

Андрей Руссков... in pro.cxx
Ilia Abernikhin
Честно вот не могу сказать на верняка, но он память выделеную под структуру теоретически должен выравнивать
ну у вас данные могут быть выровнены, да. Одни выровнены на ямайке, а другие - на ямале
источник

АР

Андрей Руссков... in pro.cxx
Ilia Abernikhin
Но оптимизирует неплохо
конкретно в этом случае лучше передавать флоатами )
источник