从r值中得到l值

sma*_*llB 0 c++

我有一个非常漂亮的get fnc,它返回指向'a type'的指针.现在我想在fnc set中重用这个fnc来为get返回的这个类型设置一些值:

template<class Tag,class Type>
set(Type t, some_value)
{
get<Tag>(t) = value;
}
Run Code Online (Sandbox Code Playgroud)

我唯一的问题是:因为get返回指针而不是对指针的引用,所以返回类型是一个rvalue,对于大多数情况来说很好但不适用于此.有没有办法以某种方式将返回值更改为左值?

Sve*_*ven 5

你可以简单地使用这个:

*get<Tag>(t) = value;
Run Code Online (Sandbox Code Playgroud)

取消引用指针的结果是l值.