gpt4 book ai didi

c++ - 传入指定类的成员变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:48 27 4
gpt4 key购买 nike

我想传入一个成员变量的名字。我以为我可以做到这一点

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;
}

关于c++ - 传入指定类的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com