Почему повышение является так в большой степени шаблонным?

Условное агрегирование является одним из способов сделать это:

select COUNT(*), 
       MAX(CASE WHEN MODIFY_DT IS NULL 
                THEN CREATE_DT
                ELSE MODIFY_DT 
           END) AS LAST_MODIFIED
from ODS.ADDRESS a;
7
задан Svante 24 February 2009 в 19:23
поделиться

2 ответа

Шаблоны могут быть высоко оптимизированы во время компиляции без потребности в виртуальных функциях. Много шаблонных приемов может считаться полиморфизмом времени компиляции. Так как Вы знаете во время компиляции, какие поведения Вы хотите, почему необходимо заплатить за вызов виртуальной функции каждый раз, Вы используете класс. В качестве награды много шаблонного кода может быть легко встроено для устранения даже самого основного вызова функции наверху.

Кроме того, шаблоны в C++ чрезвычайно мощны и гибки - они, как показывали, были Тьюрингом полный язык самостоятельно. Существуют некоторые вещи, которые легко сделать с шаблонами, которые требуют намного большего количества работы с полиморфизмом во время выполнения.

20
ответ дан 6 December 2019 в 07:52
поделиться

Шаблоны позволяют Вам делать универсальную версию алгоритма. Универсальная версия контейнера. Вы больше не должны волноваться о типах и что Вы производите потребность больше не быть связанными с типом. Повышение является набором библиотек, который пытается обратиться к потребностям большого разнообразия людей, использующих C++ в свое время для дневных жизней.

3
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: