| Re[4]: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | shank | |
| Дата: | 10.08.06 10:16 | |
| Оценка: | 17 (3) | |
| Здравствуйте, Bell, Вы писали: S>>Размеры указателей на int и на double тоже "в общем случае" не совпадают. B>Неужели? Угу. Единственное, что гарантируется касательно размеров указателей, это то, что размер void* достаточен для того, чтобы "вместить" указатель на объект любого типа, а также то что sizeof(void*) == sizeof(char*). Больше никаких гарантий. (Это объяснялось где-то Steve'ом Clamage'ом, если мне склероз не изменяет).
--- | ![]() |
| Re[3]: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Bell | |
| Дата: | 10.08.06 10:03 | |
| Оценка: | 1 (1) | |
| Здравствуйте, shank, Вы писали: S>Здравствуйте, Bell, Вы писали: NB>>>Какие причины такого решения? B>>Ну хотя бы то, что размеры указателя и указателя на член в общем случае не совпадают. S>Размеры указателей на int и на double тоже "в общем случае" не совпадают. Неужели? Любите книгу — источник знаний (с) М.Горький | |
| Re: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Bell | |
| Дата: | 10.08.06 08:17 | |
| Оценка: | +1 | |
| Здравствуйте, night beast, Вы писали: NB>Недавно столкнулся с такой непонятной штукой. NB>Указатель на мембер-функцию не является указателем. Да, это более сложная сущность. NB>Какие причины такого решения? Ну хотя бы то, что размеры указателя и указателя на член в общем случае не совпадают. Любите книгу — источник знаний (с) М.Горький | |
| Re[2]: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | shank | |
| Дата: | 10.08.06 08:44 | |
| Оценка: | +1 | |
| Здравствуйте, Bell, Вы писали: NB>>Какие причины такого решения? B>Ну хотя бы то, что размеры указателя и указателя на член в общем случае не совпадают. Размеры указателей на int и на double тоже "в общем случае" не совпадают. --- | ![]() |
| Re[8]: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | zaufi | |
| Дата: | 10.08.06 09:47 | |
| Оценка: | ![]() | |
| Здравствуйте, valker, Вы писали: V>Здравствуйте, night beast, Вы писали: NB>>"просто" указатель -- низкоуровневая абстракция. NB>>вот лично ты видишь логические основания не считать pointer-to-member указателем? V>При прочтеннии этой ветки пришла такая мысль, почему бы не трактовать функции-члены, как обычные функции, но с дополнительным параметром в начале списка — аналогом this, передающимся неявно. V>код мог бы быть таким: V>
твою мысль украли бустеры ужа давно -- и использовали при реализации boost::bind |
| Re[5]: указатель на мембер | Оценить ![]() ![]() ![]() ![]() ![]() ![]() |
| От: | Vamp | |
| Дата: | 07.08.09 14:34 | |
| Оценка: | ![]() | |
| Чуть-чуть пендатизма. S>...а также то что sizeof(void*) == sizeof(char*). ... В приведенной строчке надо либо убрать один знак =, либо видоизменить ее так: (sizeof(void*) == sizeof(char*)) = true Да здравствует мыло душистое и веревка пушистая. | |