class FixedDataBlock: public DataBlockHeaderCommon<BlockSize>
{
// Construction
public:
FixedDataBlock(void* pool, SizeT const entrySize, SizeT const alignment)
: base_t(eBlkFixData, pool)
{
this_t* dummy = reinterpret_cast<this_t*>(0);
// offsets is a type of uint16_t
OffsetT dataStartBlockOffset = reinterpret_cast<OffsetT>( &dummy->data[0] );
}
// Member variables
private:
int8_t data[ BlockSize-sizeof(header_t) ];
};
ошибка: недопустимое преобразование типа: "int8_t = {подписанный символ} *" в "uint16_t = {unsigned short}" для строки
OffsetT dataStartBlockOffset = reinterpret_cast (& dummy-> data [0] );
// dummy-> data [0] имеет подпись char *, а dataStartBlockOffset имеет беззнаковое короткое значение
Приведенный выше код прекрасно компилируется на windows, но не работает только с G CC.