Форум программистов, компьютерный форум CyberForum.ru

Объявление шаблонной функции - C++

Восстановить пароль Регистрация
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 17:50     Объявление шаблонной функции #1
Здравствуйте, встретил в учебнике это:

C++
1
2
3
4
5
template <typename Type, int size>
Type min( Type (&r_array)[size] )
{
//...
}
Что значит запись (&r_array)[size] ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
18.07.2013, 17:58     Объявление шаблонной функции #2
BuGi, Ссылка на массив размером size.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:39  [ТС]     Объявление шаблонной функции #3
Такое допустимо только в шаблонах?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 18:42     Объявление шаблонной функции #4
C++
1
2
3
4
int min( int (&r_array)[10] )
{
//...
}
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:43  [ТС]     Объявление шаблонной функции #5
Croessmah, а если не фиксированный размер? вроде size
И зачем в вашем случае в параметрах вообще задавать размер? Где будет использоваться, там надо писать
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 18:45     Объявление шаблонной функции #6
Цитата Сообщение от BuGi Посмотреть сообщение
а если не фиксированный размер? вроде size
можете передать указатель на массив, а размер массива вторым параметром
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:47  [ТС]     Объявление шаблонной функции #7
Это я знаю, всегда так делал, но вот посмотрите предыдущее сообщение, его поправил
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 18:49     Объявление шаблонной функции #8
Цитата Сообщение от BuGi Посмотреть сообщение
И зачем в вашем случае в параметрах вообще задавать размер?
Чтобы был известен размер массива

Добавлено через 32 секунды
Цитата Сообщение от BuGi Посмотреть сообщение
Где будет использоваться, там надо писать
Здесь нет примера использования
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:51  [ТС]     Объявление шаблонной функции #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Чтобы был известен размер массива
Кому известен? Тому, кто пишет функцию, он понятное дело известен. Или какой-нибудь sizeof выдаст другие числа?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 18:53     Объявление шаблонной функции #10
Цитата Сообщение от BuGi Посмотреть сообщение
Или какой-нибудь sizeof выдаст другие числа?
при таком объявлении выдаст размер массива.
Цитата Сообщение от BuGi Посмотреть сообщение
Кому известен?
дескриптору
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:03  [ТС]     Объявление шаблонной функции #11
Цитата Сообщение от Croessmah Посмотреть сообщение
дескриптору
Я вот читал как раз про них, но не очень понял суть
Основная идея заключается в том, чтобы использовать умные указатели для ссылок на ведущие указатели. Эти дополнительные указатели и называются дескрипторами.
Если имеется в виду Дескриптор - перевод слова Handle, а не Descriptor, то это некое число, значение которого практически не несет никакой смысловой нагрузки для программиста, однако оно позволяет однозначно идентифицировать некий объект операционной системы и использовать себя (дескриптор) в качестве ссылки
Где эти дескрипторы находятся и зачем они нужны? Или может есть ссылки на подробное описание
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
18.07.2013, 19:05     Объявление шаблонной функции #12
Цитата Сообщение от BuGi Посмотреть сообщение
Я вот читал как раз про них, но не очень понял суть
Потому что не про то читали
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 19:21     Объявление шаблонной функции
Еще ссылки по теме:

C++ Вызов шаблонной функции
C++ Экспорт шаблонной функции из DLL
C++ Вызов конктестной перегрузки шаблонной функции у стратегии

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:21  [ТС]     Объявление шаблонной функции #13
В общих чертах я понял, что это такое (дескриптор/хендл -- указатель на какие-то системные данные?), но вот как он связан с массивом, переданным в функцию, не пойму)
Yandex
Объявления
18.07.2013, 19:21     Объявление шаблонной функции
Ответ Создать тему
Опции темы

Текущее время: 02:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru