ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Четверг
7 июля
1164711 Топик полностью
VladislavS. (14.01.2022 22:57, просмотров: 160) ответил RxTx на Я объясню.
Верно лишь отчасти. Когда земля была ещё чуть тёплой, программисты заметили, что автоматическим выведением типов с помощью шаблонов можно управлять. Так же, можно управлять ходом компиляции с помощью технологии SFINAE. Вместе они (template + SFINAE) начали порождать монстров типа Loki. Но сапиенс на то и хомо, что решил с этим бороться. В языке появились средства вычислений на этапе компиляции без шаблонов. Заодно они фактически заменили препроцессор на более качественном 

уровне. Теперь это не просто подстановки текста, а ещё и полный анализ результата. Пример вычислений на этапе компиляции без всяких шаблонов я приводил Эту таблицу можно использовать как в рантайме, так и на этапе компиляции тоже. В последнем случае есть ненулевая вероятность, что оптимизатор её вообще выкинет. Механизм SFINAE те же хомо подчинили концептам и теперь он вместо ужаса в виде enable_if стал мощнейшим инструментом.

https://caxapa.ru/1163375.html1163375.html


А ещё шаблоны удобны для связывания между собой объектов.

// Подключаем 4 микросхемы EEPROM на два I2C порта
using EEPROM1 = EE_24C<I2C::i2c1, EEType::AT24C512, 0>;
using EEPROM2 = EE_24C<I2C::i2c1, EEType::AT24C256, 1>;
using EEPROM3 = EE_24C<I2C::i2c2, EEType::AT24CM01, 0>;
using EEPROM4 = EE_24C<I2C::i2c2, EEType::AT24C512, 1>;
Ответы