Это просто любопытный вопрос. Простите, если это звучит глупо.
Согласно dcl.ref / 5 :
Не должно быть ссылок на ссылки, массивов ссылок,
и без указателей на ссылки.
Я не вижу в стандарте, который ограничивает ссылку указателем на кД.
Таким образом, теоретически, поскольку указатель является допустимым объектом, переменная может быть ссылкой на указатель в kD.
Однако я не могу доказать это в этом примере, имеющем ссылку на 3D-указатель.
int p = 1, *p1 = &p, **p2 = &p1, ***p3 = &p2;
int &r = p3;
Я получаю ошибку:
ошибка: неправильное преобразование из int *** в int [-fpermissive]
int & r = p3; // ошибка
или другие варианты, такие как int &&&r = p3
.
ошибка: невозможно объявить ссылку на int &&, которая не является typedef или
аргумент типа шаблона
Вопрос (ы)
- Как получить ссылку на кД (например, 3D) указатель? (если возможно)
если нет: есть ли часть стандарта, которая ограничивает такое?
Ненужный вопрос:
Почему int&&&
будет иметь ошибку "not typedef ...", в то время как int&&
допустим? есть ли ограничение на '&'
?