мой вопрос о том, как шаблонизировать имя члена класса, который должен использоваться.
Возможно, упрощенный и псевдо-пример:
/**
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
}
и
class MyClass{
public:
int aaa, bbb, ccc;
}
и приложение:
main(){
vector<MyClass> all = ....
// applicate doSomething() to all aaa's
doSomething<aaa>(all); // or:
doSomething<MyClass::aaa>(all); // or:
doSomething<?????>(all);
}
Как должно выглядеть определение шаблона, чтобы я мог выбирать, какую переменную-член (aaa, bbb илиccc) MyClass доступен / изменен в doSomething (.)?
В моей реальной задаче все ЧЛЕНЫ относятся к тому же типу, что и выше.
Спасибо, Тебас