реклама на сайте
подробности

 
 
> Растолкуйте по шаблону С++
VladislavS
сообщение Jul 24 2018, 03:31
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



Помогите, плиз, устранить пробел в знаниях. Что значит второе определение Set() в этом шаблоне?

Код
template<class Regs>
class PortImplementation
{
  public:
    static void Set(uint16_t value)
    {
      Regs()->BSRR = value;
    }

    template<uint16_t value>
    static void Set()         //<--- ???
    {
      Regs()->BSRR = value;
    }
};
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kabdim
сообщение Jul 24 2018, 13:50
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Потому что это не частичная специализация. Это шаблонная функция в шаблонном классе. Т.е. вначале будет инстанцирован класс для всех используемых классов Регс, а потом в каждом будет дополнительно созданы методы для всех значений в угловых скобках. Автор этого надеялся на то что всё в итоге будет заинлайнено.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- VladislavS   Растолкуйте по шаблону С++   Jul 24 2018, 03:31
- - technik-1017   оптимизацию компилятора не учитываем в первом слу...   Jul 24 2018, 09:36
- - VladislavS   Спасибо, идея понятна, поэкспериментирую на досуге...   Jul 24 2018, 12:33
|- - VladislavS   Цитата(Kabdim @ Jul 24 2018, 16:50) Это ш...   Jul 24 2018, 14:14
- - Kabdim   метод=функция определенная в классе. Попадает он и...   Jul 24 2018, 14:41
- - VladislavS   То есть, я сам константный вызов должен сделать, ...   Jul 24 2018, 15:00
- - dxp   Функция, объявленная внутри класса и являющаяся не...   Jul 25 2018, 02:15
|- - Kabdim   Цитата(dxp @ Jul 25 2018, 05:15) Виртуаль...   Jul 26 2018, 09:24
|- - dxp   Цитата(Kabdim @ Jul 26 2018, 16:24) А вы ...   Jul 26 2018, 10:22
|- - Kabdim   Цитата(VladislavS @ Jul 26 2018, 12:43) ч...   Jul 27 2018, 09:15
|- - dxp   Цитата(Kabdim @ Jul 27 2018, 16:15) Да км...   Jul 27 2018, 10:05
|- - Kabdim   Цитата(dxp @ Jul 27 2018, 13:05) "Ме...   Jul 27 2018, 10:14
- - VladislavS   dxp, Спасибо. "Кто ясно мыслит, тот ясно изл...   Jul 25 2018, 02:52
|- - dxp   Цитата(VladislavS @ Jul 25 2018, 09:52) П...   Jul 25 2018, 04:59
- - VladislavS   Я думаю, что термин "метод" начали приме...   Jul 26 2018, 09:43
- - VladislavS   dxp, знаете, меня и Kabdim (мы с ним не только учи...   Jul 26 2018, 11:25
- - halfdoom   Видимо не стоит буквально переводить "method...   Jul 27 2018, 10:59
|- - dxp   Цитата(halfdoom @ Jul 27 2018, 17:59) Вид...   Jul 27 2018, 11:19
|- - halfdoom   Цитата(dxp @ Jul 27 2018, 14:19) обычные ...   Jul 27 2018, 12:00
|- - dxp   Цитата(halfdoom @ Jul 27 2018, 19:00) Так...   Jul 27 2018, 13:02
|- - halfdoom   Цитата(dxp @ Jul 27 2018, 16:02) Что-то в...   Jul 27 2018, 14:01
|- - Forger   Вставлю свои "пять копеек" Я использую ...   Aug 8 2018, 06:28
- - dxp   Ещё был случай в истории, когда в строевой подгото...   Aug 9 2018, 01:20
- - Forger   Цитата(dxp @ Aug 9 2018, 04:20) Ещё был с...   Aug 9 2018, 05:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 21:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01392 секунд с 7
ELECTRONIX ©2004-2016