12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|
1 | |
универсальный указатель24.02.2013, 22:46. Показов 2855. Ответов 38
Метки нет (Все метки)
Добрый вечер.
Можно ли создать шаблон, что бы не приводить явно универсальный указатель к определенному типу при разыменовании? Или по крайней мене узнать тип (размер) данных которые хранятся по указанному адресу?
0
|
24.02.2013, 22:46 | |
Ответы с готовыми решениями:
38
Универсальный указатель или универсальный скалярный тип Указатель типа void. Использование косвенного связывания через универсальный указатель универсальный указатель Специализация и обобщение в С++ через универсальный указатель |
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||
24.02.2013, 22:50 [ТС] | 3 | |||||
Kuzia domovenok, Что бы написать что то подобное:
Просто без этого я не вижу смысла в универсальном указателе....
0
|
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|||||||||||
24.02.2013, 23:02 | 4 | ||||||||||
Зачем?
Добавлено через 4 минуты
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||
24.02.2013, 23:02 [ТС] | 5 | |||||
ITcrusader, как зачем???
0
|
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
24.02.2013, 23:08 | 6 |
Вот оно что) А может лучшее решение найдется после ответа на вопрос "А зачем?"
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||
24.02.2013, 23:12 [ТС] | 7 | |||||
Добавлено через 1 минуту а толку с универсального указателя, если что бы его разыменовать нужно указать тип?
0
|
177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
|
24.02.2013, 23:22 | 10 |
Ну, в общем, так. Использование указателей на void целесообразно в единичных случаях (и то, с целью лютой унификации и спрятано должно быть в недрах реализации), например, при создании контейнера и то требует надстройки интерфейса над этим ночным кошмаром, который будет осуществлять строгий контроль типов. Я, может, это от безысходности пишу)) Но батьки так советуют (Мейерс, Скотт).
1
|
fuelcs
|
24.02.2013, 23:28
[ТС]
#12
|
0
|
Higher
|
|
24.02.2013, 23:29 | 13 |
Он гораздо медленнее std::sort как раз-таки из-за того, что не имеет информации о типах и не может инлайнить вызов функции сравнения.
Это вообще сишные POD'овые функции, написать с ними что-либо универсальное невозможно. А вообще, реализация из #4 полностью универсальна(только непонятно, на кой там нужны указатели) и вызывать ее можно для любых типов. Ну а если пользователь этой функции не знает, какие у него типы (то есть передает void*) то это его проблемы, что мы не оправдали его ожидания.
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
||||||
24.02.2013, 23:39 [ТС] | 14 | |||||
Не по теме:
выше сказанное связано с темой?
0
|
24.02.2013, 23:41 | 15 | |||||
обнулить участок памяти, начиная с некоего адреса. (Из чьей-то лабы драйвера экрана)
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|
24.02.2013, 23:45 [ТС] | 16 |
0
|
Higher
|
||||||
24.02.2013, 23:47 | 17 | |||||
Если вы про мой пост, то напрямую.
Ибо void* - просто адрес чегототам в памяти и вытащить из этого адреса тип невозможно. Ну, можно использовать ваш код из #2, но для этого вызывающей стороне придется явно указать желаемый тип
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|
24.02.2013, 23:49 [ТС] | 18 |
diagon, я имел ввиду свой код с memset...
0
|
12 / 12 / 2
Регистрация: 23.01.2013
Сообщений: 143
|
|||||||||||
25.02.2013, 00:09 [ТС] | 20 | ||||||||||
diagon, исходя из
и я думаю что ячейка памяти просто набор (к примеру) из 32 бит и при
Я правильно понимаю?
0
|
25.02.2013, 00:09 | |
25.02.2013, 00:09 | |
Помогаю со студенческими работами здесь
20
Универсальный вызов метода через указатель на объект Как получить ссылку на указатель или указатель на указатель в массиве? А почему нельзя передавать в ф-ю добавления элемента в стек один указатель? Почему нужен именно указатель на указатель? Функция, принимающая указатель и число байт и выделяющая память под указатель Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |