Здравствуйте, Shmj, Вы писали:
S>Вопрос такой. Ссылки нельзя переназначить на другой адрес, что мешает использовать их в map и пр.
Ссылка — это второе имя переменной (в отличии от ссылочного типа). В map не кладут имена переменных. В map кладут значения переменных.
S>S>int a = 10;
S>int b = 20;
S>int& ref1 = a;
S>int& ref2 = b;
S>// как то сделать, чтобы ref1 и ref2 ссылались на одну область памяти
//Допустим...
S>ref1 = ref2 // присваивает значение b в a, а не присваиваем ref1 адрес ref2, как хотелось бы. А что мешает?
//ref1 и ref2 - это вторые имена переменных a и b соответственно.
//Поэтому вопрос равносилен следующему:
a = b // присваивает значение b в a, а не присваивает a адрес b, как хотелось бы. А что мешает?
S>
S>А вот гипотетически можно было бы разрешить присваивать ссылкам адреса других ссылок? Что бы при этом принципиально сломалось? Ведь все-равно вторая ссылка обязательно на что-то ссылается то.
Да, теоретически можно было бы вместо копирования значений перепривязывать имена переменных к другим объектам. Более того, насколько я знаю, в теоретическую часть всех ВУЗовских курсов программирования входит рассказ такой возможности. Но это не C++.