让我说我有这个:
struct myStruct {
int A;
int B;
}
Run Code Online (Sandbox Code Playgroud)
是否可以通过这样的模板参数设置特定成员?
void setTo10<?? member>(myStruct& obj) {
obj.member = 10;
}
Run Code Online (Sandbox Code Playgroud)
//用法:
setTo10<"member A">(obj);
Run Code Online (Sandbox Code Playgroud)
我知道用宏可以实现,但模板怎么样?
谢谢
像这样的东西?
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';
}
Run Code Online (Sandbox Code Playgroud)