|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.09.2012, 16:33 | #1 |
Регистрация: 24.09.2012
Сообщений: 3
|
Указатели в шаблонах (C++)
Добрый день.
Внезапно возникла проблема (или скорее непонимание) с реализацией одной шаблонной функции на C++. Суть ее заключается в следующем: нужно написать функцию, принимающую в качестве аргументов указатели на некоторые элементы массива, а в результате переставляющая эти элементы. Без особых проблем я накатал вот такое: Код:
T temp; T temp = new (*T); (вместо инициализации temp'а в вышеприведенном коде) компилятор ругается. А больше идей и нет. Может кто-нибудь знает возможно ли справиться с такой проблемой? Объявление шаблонной функции менять нельзя, только реализацию. Пример использования функции: Код:
|
24.09.2012, 17:49 | #2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Это Вам задали, или по какой причине нельзя менять определение? Можно ли писать дополнительные шаблоны, вроде
Код:
Код:
|
24.09.2012, 22:17 | #3 |
Регистрация: 24.09.2012
Сообщений: 3
|
Да, определение должно было оставаться таким же, но про дополнительные шаблоны не было указано ни слова. Поэтому думаю этот вариант решения подойдет. Спасибо!
UPD: Но еще бы хотелось, чтобы эта штука работал и с вектором (с итераторами в виде параметров), но вот тут компилятор опять ругается Можно ли как-нибудь дополнить ваш вариант, чтобы он работал и в случаях типа: Код:
|
24.09.2012, 23:38 | #4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Не уверен, можно ли Вам пользоваться всеми средствами стандартной библиотеки, но в "модуле" iterator определён тип iterator_traits, который позволяет извлечь данные о типе элемента из итератора (тех, что поддерживают iterator_traits), включая указатели.
Код:
Код:
|
25.09.2012, 00:07 | #5 |
Регистрация: 24.09.2012
Сообщений: 3
|
netrino
Первый способ, пожалуй, более универсальный. Им и воспользуюсь. Еще раз спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблемы с operator = в шаблонах | monnzz | Общие вопросы C/C++ | 6 | 11.05.2012 20:58 |
django-php: PHP в шаблонах Django | rei_desu | PHP | 0 | 07.08.2011 05:16 |
PHP код в шаблонах CMS | MrakSPb | PHP | 7 | 03.08.2010 15:16 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |