шаблоны, непонятные |
Здравствуйте, гость ( Вход | Регистрация )
шаблоны, непонятные |
Litkevich Yuriy |
9.12.2020, 11:48
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Столкнулся с таким кодом:
Первая (непонятная) строка: думаю, мне понятна - объявление шаблонной функции, у которой параметр шаблона имеет тип uint32_t, имя шаблонного параметра не указано, т.к. не используется (да и комментарий в коде говорит об этом). Вторая (непонятная) и последняя строки: тут совсем непонятно, т.к. вижу вначале ключевое слово template, а в конце фигурные скобки, то вроде это определение шаблонной функции. Однако после имени функции идут фигурные скобки с неким содержимым, так обычно вызывают шаблонные функции. Дак что же это в 2-ух последних строках? напоминает перегруженные функции Сообщение отредактировал Litkevich Yuriy - 9.12.2020, 11:50 |
|
|
Алексей1153 |
10.12.2020, 8:09
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Litkevich Yuriy, это специализация шаблона функции
первая строка - как бы начало, от которого нужно будет отталкиваться компилятору при подборе наиболее подходящей специализации. Причём тело функции отсутствует, это лишь объявление (если перейти к аналогии простых функций) вторая и третья строки - специализация функции для параметра типа uint32_t, указанного при инстанцировании шаблона, равного GPIOA_BASE и GPIOB_BASE соответственно
с моей точки зрения шаблоны тут вообще не нужны, можно обойтись енумклассом
или даже так
Сообщение отредактировал Алексей1153 - 10.12.2020, 8:13 |
|
|
Litkevich Yuriy |
10.12.2020, 8:57
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Спасибо, Алексей!
(кнопки "Спасибо" почему-то нет) |
|
|
Текстовая версия | Сейчас: 4.10.2024, 0:04 |