我知道这可能是个愚蠢的问题,但是...
有人能给我提供一种方法,强制函数(或方法)返回对内部静态变量或类/结构体成员的引用,只能分配给引用变量吗?
我尝试用一个简单的例子来解释我的需求。
考虑以下代码,其中有一个名为wrapValue()
的函数,它返回对内部静态变量的引用:
int & wrapValue (int v0)
{
static int val;
return val = v0;
}
int main ()
{
// how to permit this ...
int & v0 { wrapValue(0) };
// ... but forbid this ...
int v1 { wrapValue(1) };
int v2;
// ... and this ?
v2 = wrapValue(2);
}
有一种方法可以允许初始化
v0
(并将v0
绑定到静态变量),禁止初始化v1
和赋值v2
(而不绑定v1
和v2
到静态变量)吗?如果在当前的C++标准下无法实现,有人可以建议我另一种方式(但不要太复杂:我打算在一个希望保持简单的库中使用它)来禁止未绑定的赋值吗?
&
。我的英语不好,所以很难解释...如果您有兴趣(根据Stack Overflow规则,这是正确的吗?),我可以写下我的github项目链接。 - max66&
,则引用将丢失,并且在后续阶段设置的值也将丢失;也许我的解决方案很愚蠢,但如果用户记得&
,它似乎是有效的。 - max66