powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / двойное разыменование
6 сообщений из 6, страница 1 из 1
двойное разыменование
    #39438900
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, GCC позволяет конструкции "(*pptr)->member" и "(**pptr).member", но почему-то
отвергает "pptr->->member". А ведь по идее они должны быть равнозначны...

Что говорит стандарт о "->->"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
двойное разыменование
    #39438917
YesSql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovИнтересно, GCC позволяет конструкции "(*pptr)->member" и "(**pptr).member", но почему-то
отвергает "pptr->->member". А ведь по идее они должны быть равнозначны...

Что говорит стандарт о "->->"?


По C reference Manual он требует справа члена структуры. Это оператор смещения. В отличии от *

7.1.8 primary-expression -> member-of-structure

7.2.1 * expression
...
Рейтинг: 0 / 0
двойное разыменование
    #39438925
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovИнтересно, GCC позволяет конструкции "(*pptr)->member" и "(**pptr).member", но почему-то
отвергает "pptr->->member". А ведь по идее они должны быть равнозначны...

Что говорит стандарт о "->->"?


a->b;
тоже самое что:
a->->b;
и тоже самое что:
a->->->->->и так до конца->b;

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4606.pdf § 13.5.6
An expression x->m is interpreted as (x.operator->())->m for a class object x of type T if T::operator->() exists and if the operator is selected as the best match function by the overload resolution mechanism (13.3).
...
Рейтинг: 0 / 0
двойное разыменование
    #39439195
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The first operand of the -> operator shall have type ‘‘pointer to atomic, qualified, or
unqualified structure’’ or ‘‘pointer to atomic, qualified, or unqualified union’’, and the
second operand shall name a member of the type pointed to.
...
Рейтинг: 0 / 0
двойное разыменование
    #39439297
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИнтересно, GCC позволяет конструкции "(*pptr)->member" и "(**pptr).member", но почему-то
отвергает "pptr->->member".

Стрелка это инфиксная операция, которой слева и справа требуются выражения определенного вида.
Ни "pptr->" ни "->member" не являются таковыми выражениями.
Да и вообще не являются выражениями ))
...
Рейтинг: 0 / 0
двойное разыменование
    #39440470
Common Lisp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky

пояснил как бох
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / двойное разыменование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]