g++ を使用して、パックされたフィールドを含むコードをコンパイルします。ただし、パック フィールドへの参照を返そうとするとエラーが発生します。
例:
struct __attribute__((packed)) Foo {
int* ptr;
uint16_t foo;
int*& getPtr(){
return ptr;
}
};
エラーが発生します:
test.cpp:22:14: error: cannot bind packed field ‘((Foo*)this)->Foo::ptr’ to ‘int*&’
return ptr;
パック フィールドへの参照を返すことができないのはなぜですか?