Я использую 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;
Почему я не могу вернуть ссылку на упакованное поле?
return (int*&)ptr;
- person Marc Glisse   schedule 16.12.2014