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

Что говорит стандарт о "->->"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.04.2017, 17:57
    #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
14.04.2017, 18:11
    #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
15.04.2017, 21:30
    #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
16.04.2017, 12:50
    #39439297
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
двойное разыменование
Dimitry SibiryakovИнтересно, GCC позволяет конструкции "(*pptr)->member" и "(**pptr).member", но почему-то
отвергает "pptr->->member".

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

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


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