下面简化的代码示例不会对数据成员指针执行任何有用的但是两个后续的分配.第一个赋值工作,第二个赋予一个编译器错误.大概是因为它是一个嵌套的成员.
问题是:真的不可能让成员指针指向一个嵌套的成员,或者我在那里缺少任何花哨的语法?
struct Color { float Red; float Green; float Blue; }; struct Material { float Brightness; Color DiffuseColor; }; int main() { float Material::* ParamToAnimate; ParamToAnimate = &Material::Brightness; // Ok ParamToAnimate = &Material::DiffuseColor.Red; // Error! *whimper* return 0; }
ATM我正在使用字节偏移量和大量的转换.但那很丑,我最好还是用这些成员指针.
是的,我知道这个问题肯定是在之前(像几乎任何一个问题).是的,我事先搜索,但没有发现令人满意的答案.
谢谢你的时间.
解决方法
AFAIK,这是不可能的.指针成员只能由& qualified_id类型的表达式形成,这不是你的情况.
Vite Falcon的解决方案可能是最合适的.