Why can't I return a reference to a packed field?

旧巷老猫 提交于 2019-12-05 02:23:57

There is a gcc bug report Cannot bind packed field that covers this and it says:

The C++ spec (C++03, Sects. 3.9, 3.9.1, 3.9.2) are very clear that T and "pointer to T" have implementation-specific alignment requirements. If you have a "pointer to T" then you may assume that it meets the alignment requirements. I'm sure the C spec has similar language.

In the OP's case, the following code could violate the alignment requirements

They suggest a workaround using alignment attribute to define your own aligned type but it does not look like it works.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!