我有一个包含其他结构以及原始数据类型的结构。我希望能够使用模板函数访问每个成员,包括主结构中包含的结构的成员。
例如:
struct B {
int y;
int z;
};
struct A {
int x;
B b;
};
template <typename TMember>
bool doSomething(A *a, TMember member) {
a->*member = 5; // some code accessing member
}
// Then access it with:
doSomething(&myA, &A::x);
// and likewise
doSomething(&myA, &A::b.y);
Run Code Online (Sandbox Code Playgroud)
但是,第二个不会编译并抛出“引用中缺少对象”错误。我认为这是因为 A 没有成员?
是否有办法获得我想要的功能,或者需要编码不同的功能?
(请注意,这只是一个示例,我的代码包含更大的结构,比仅仅编写第二个函数可以节省更多时间。)
谢谢!