假设我有这个:
struct myStruct {
int A;
int B;
}
是否可以像这样通过模板参数设置特定成员?
void setTo10<?? member>(myStruct& obj) {
obj.member = 10;
}
//用法:
setTo10<"member A">(obj);
我知道使用宏是可能的,但是模板怎么样?
谢谢
最佳答案
是这样的吗?
struct myStruct {
int A;
int B;
};
template <typename T, typename V>
void set(T& t, V T::*f, V v)
{ t.*f = v; }
int main()
{
myStruct m;
set(m, &myStruct::A, 10);
std::cout << m.A << '\n';
}
关于c++ - 使用模板参数设置特定成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143567/