繁体   English   中英

传入指定类的成员变量

[英]Passing in member variables of a specified class

我想传递一个成员变量的名称。 我以为我可以做到

template <typename T::*>
void SetVal(T::* newval)
{

};

这显然是行不通的,但是希望可以克服我正在尝试做的事情。 我希望能够设置模板化类的某个成员变量。

您始终可以将编译定义的常量作为模板参数。 因此,这将是:

template <typename T, typename R, R T::* member>
R& SetVal(T& t, const R& value)
{
   t.*member = value;
   return t.*member;
}

struct A
{
  int a;
};

int main()
{
  A a;
  SetVal<A,int,&A::a>(a, 10);
  return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM