Size: a a a

2020 June 08

IZ

Ilia Zviagin in pro.cxx
Igor Akhmetov
Я думаю Илья имеет ввиду что разные компиляторы по-разному пакуют одинаковые битфилды, это точная инфа.
Да, это и имел в виду
источник

A

Alex in pro.cxx
Igor Akhmetov
Я думаю Илья имеет ввиду что разные компиляторы по-разному пакуют одинаковые битфилды, это точная инфа.
Даже если структура подовская и юзается pragma pack?
источник

IA

Igor Akhmetov in pro.cxx
Alex
Даже если структура подовская и юзается pragma pack?
Да.
источник

A

Alex in pro.cxx
Интересно.
Такой эффект наблюдается при переходе с мингв на мсвс?
источник

NA

Nikita Alekseev in pro.cxx
кто может пояснить почему не работает, и как поправить? https://gcc.godbolt.org/z/TUakc3
источник

nn

no name in pro.cxx
constexpr bool hello = typename A::template a<T>;
typename лишнее
источник

NA

Nikita Alekseev in pro.cxx
блин точно там же только для зависимых типов
источник

IZ

Ilia Zviagin in pro.cxx
Alex
Интересно.
Такой эффект наблюдается при переходе с мингв на мсвс?
Какой эффект?
источник

IZ

Ilia Zviagin in pro.cxx
no name
constexpr bool hello = typename A::template a<T>;
typename лишнее
Почему же, можно добавлять
источник

A

Alex in pro.cxx
Ilia Zviagin
Какой эффект?
Упаковка битовых полей по-разному в разных компиляторах.
источник

IZ

Ilia Zviagin in pro.cxx
Alex
Упаковка битовых полей по-разному в разных компиляторах.
Ну, и логика у тебя где?

Если Упаковка делается по-разному, то какая разница с какого на какой компилятор переходить?
источник

nn

no name in pro.cxx
Ilia Zviagin
Почему же, можно добавлять
потому что это не тип
источник

IZ

Ilia Zviagin in pro.cxx
Alex
Упаковка битовых полей по-разному в разных компиляторах.
То есть даже она не по разному, она вообще не определена, как делается
источник

A

Alex in pro.cxx
Ilia Zviagin
Ну, и логика у тебя где?

Если Упаковка делается по-разному, то какая разница с какого на какой компилятор переходить?
Идея другая.
При переходе с мингв на мсвс упаковка различная или нет?
источник

IZ

Ilia Zviagin in pro.cxx
no name
потому что это не тип
А что? Может быть, конечно...
источник

IZ

Ilia Zviagin in pro.cxx
Alex
Идея другая.
При переходе с мингв на мсвс упаковка различная или нет?
Никто не сможет тебе сказать
источник

IZ

Ilia Zviagin in pro.cxx
Alex
Идея другая.
При переходе с мингв на мсвс упаковка различная или нет?
Она может быть какой угодно
источник

A

Alex in pro.cxx
Ilia Zviagin
Она может быть какой угодно
Какой угодно это какой?
Есть, предположим, структура:
{
Uint8 q:3;
Uint8 b:3;
Uint8 r:2;
}
Указано выше выравнивание
по 1 байту через прагму.
Получается, у нас может быть такое, что мужу q и b будет пустое место и общий размер не 1 байт или порядок изменится или что?
источник

A

Alex in pro.cxx
К чему я это задаю. У нас много где используется обработка принятых пакетов через memcpy. В мингв все работает отлично, а если кто то возьмет и соберёт qt на msvc, то стоит ли ожидать косяков с этой стороны?
источник

IA

Igor Akhmetov in pro.cxx
Alex
К чему я это задаю. У нас много где используется обработка принятых пакетов через memcpy. В мингв все работает отлично, а если кто то возьмет и соберёт qt на msvc, то стоит ли ожидать косяков с этой стороны?
https://gcc.godbolt.org/z/thVD66 простейший пример.
источник