繁体   English   中英

指向std :: array成员的指针

[英]Pointer to member for std::array

假设我有一个包含另一个结构类型的对象数组的结构,如下所示:

struct foo { int x, y; };
struct bar { std::array<foo, 4> foos; };

是否可能可移植地编写一个表达式,该表达式的值将为给定数组元素的给定属性的成员指针? 类似于&bar::foos[2]::x

该应用程序是embind的 :如果可能的话,我想将这样的嵌套C ++类型映射到线性JavaScript元组。 如果使用成员指针无法解决问题,那么我可能可以尝试使用getter和setter方法,但是我仍然想知道是否存在获取此类成员指针的方法。

我认为您无法做任何事情。 foos[2]不是bar的成员,只有foos是。 您不能从不是成员的东西获得指向成员的指针。 C ++ 11标准的5.3.1 / 4段规定:

仅当使用显式&且其操作数是未括在括号中的限定ID时,才会形成指向成员的指针。

这意味着语法本身会阻止您编写任何看起来不像的内容:

&class_name::member_name

其中class_name本身可以是限定名称。 不允许使用下标运算符或其他花哨的符号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM