我已经定义了一个(const)元组,如下所示:
double var1, var2;
const tuple<double&, double&> my_tup(var1, var2);
现在,为什么我能够做到以下几点:
get<0>(my_tup) = 3215.513
如果元组中包含的引用是指向var1和var2的const
指针,则上述代码才有意义 - 内存地址本身为const
(因为元组为const
,所以我们不能改变它的任何内容),但内存地址的内容指向,而不是因此允许的改变。但是,如果你看一下this关于什么是真正的引用的讨论,你会看到有一些热心的拥护者提到引用不是const
指针,而只是已经声明的变量的不同名称。在这种情况下,我如何解释const
元组的引用?将元组声明为上面的const
,如果它包含引用,则无意义吗?
(请注意,我必须在另一个设置中使用const
元组,这太复杂了,无法解释并与问题无关。)