У меня есть следующее: (HalfType = 32bit, Type = 64bit)
inline static HalfType getGroupNr(const Type & id){
Type id2 = id;
id2 >>= sizeof(HalfType)*8;
HalfType a = reinterpret_cast<HalfType &>(id2);
return a;
};
Это должно извлечь последние 32-битные из 64-битного ввода id
и вернуть эти 32 бита.
Как мне исправить это предупреждение:
dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
И какова точная проблема в приведенном выше коде и будет использовать объединение для id
типа будет лучше? (Как?)
Задача ещё не решена.