我的问题是关于如何模板化应该使用的类成员的名称.
也许是一个简化的伪示例:
/**
Does something with a specified member of every element in a List.
*/
template<membername MEMBER> // <-- How to define such thing?
void doSomething(std::vector<MyClass> all){
for( i=0; i < all.size(); i++)
all[i].MEMBER++; // e.g.; use all[i].MEMBER in same way
}
Run Code Online (Sandbox Code Playgroud)
和
class MyClass{
public:
int aaa, bbb, ccc;
}
Run Code Online (Sandbox Code Playgroud)
和申请:
main(){
vector<MyClass> all = ....
// applicate doSomething() to all aaa's
doSomething<aaa>(all); // or:
doSomething<MyClass::aaa>(all); // or:
doSomething<?????>(all);
}
Run Code Online (Sandbox Code Playgroud)
模板定义应该如何,我可以在doSomething(.)中切换访问/修改MyClass的哪个成员变量(aaa,bbb或ccc)?
在我的真实世界任务中,所有成员都是相同的类型,如上所述.
谢谢,Tebas