const元组 - 但能够更改内容(引用)?

时间:2015-10-06 01:00:33

标签: c++ pointers c++11 reference

我已经定义了一个(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元组,这太复杂了,无法解释并与问题无关。)

0 个答案:

没有答案