![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Один написал
- другой перевёл
а третий поставил диагноз без аргументации (т.е. нахамил) : Здесь, конечно, можно придраться к словам, т.к. в стандарте это не упоминается, но конструкция эта - специальная для указателей на функции-члены. Это я имел в виду. -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
Стандарт
5.3.1 Unary operators
Это сообщение отредактировал(а) Alek86 - 27.2.2008, 17:32 |
|||
|
||||
| UnrealMan |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
А конструкция *new - специальная для разыменования указателей на объекты, созданные в динамической памяти Если "::*" - это целостный специальный оператор для указателей, то почему следующий код прекрасно скомпилируется
? Это сообщение отредактировал(а) UnrealMan - 27.2.2008, 17:40 |
||||
|
|||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
UnrealMan, так же прекрасно компилируется, как и этот :
Впрочем, чтобы перестало компилироваться, стоит попробовать задать не нулём
Чему в этом примере присвоился p в первой же строчке? Вернее, что это за адрес при том, что функция foo - не статическая, а экземплярная? С этим адресом нечего будет поделать, пока (ниже) не будет создан экземпляр класса A. Я думаю, наличие штуки "::*", специфичной для функций-членов ничем не мешает существованию "::" (scope resolution) и "*" (indirection) вместе и в отдельности. Неправильно думаю? -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
возможно, потому же, почему и такой:
-------------------- qqq |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
В стандарте нет токена "::*". Оператора такого тоже нет. Объявление указателя на член представляет собой
::opt nested-name-specifier * cv-qualifier-seq opt D1 Это сообщение отредактировал(а) UnrealMan - 27.2.2008, 19:13 |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Прекрасно! Вы довольны, что случай членов определяется специальным образом? Может быть, вы пытаетесь доказать, что указатели на функции и обычные указатели - это одно и то же? Об этом я уже сказл чуть выше. О чём же спор? -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
спор о том, что я и хочу узнать
ты сказал
в ответ в несколько необычной форме тебе сказали, что это неправда и "::&" имеет такие же права на существование так почему нету сцылок, будь они неладны, на функции-члены? |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
||||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Не знаю
аргументом не может быть указатель на член или метод, т.к. тип T в таких случаях не может быть выведен. Это сообщение отредактировал(а) UnrealMan - 27.2.2008, 20:33 |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Я уж не знаю как ещё объяснить. Я имел в виду, что данная нотация имеет специальный смысл для указателей на функции-члены классов и привёл этому пример кода, в котором укзатель получал некоторое значение фактически до того, как был построен экземпляр класса с данной функцией.
Неправда, для указателей такой конструкции нет (и ::* не было бы, если б она не была введена отдельно) -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Думаешь, составление стандарта - это очень просто? Посмотри на рассмотренные комитетом неточности и ошибки текущего стандарта http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html. Не впечатлило? Это только то безобразие, исправление которого уже отражено в текущем рабочем черновике нового стандарта. А теперь взгляни на то, что комитету ещё предстоит пересмотреть для внесения соответствующих поправок в рабочий черновик: http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html Снова не впечатлило? Тогда, может быть, ты нам тут перескажешь своими словами содержание этих двух ну совсем маленьких страничек? |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
UnrealMan, НЕТ, я не такой впечатлительный, увы. Мне кажется, для большой и очень иерархичной структуры, объединяющей сотни специалистов и поддерживаемой большими технологическими корпорациями такой уровень прогресса является весьма скромным : от писания (и пересказывания) черновиков толку никакого, если даже действующий чистовик стандрата многими компиляторами реализован неполностью. Впрочем, в листах ли, в цифрах оценивать - всё-равно ничего не будет значить. Важно качество. Но я вообще-то не об этом. Чтобы не делать некоторые вещи, вовсе не обязательно сбиваться с ног -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |