
Симуляция частичной специализации
Закладка: Павел Кузнецов Симуляция частичной специализации Введение Время от времени при работе с шаблонами возникает необходимость специализировать шаблон класса по одному из аргументов.
Комментарии: template‹class TRet, class TP1› class CDelegate1 { //…
Читать фрагмент
Читать ещёЗакладка:Павел КузнецовСимуляция частичной специализацииВведениеВремя от времени при работе с шаблонами возникает необходимость специализировать шаблон класса по одному из аргументов. В качестве примера можно рассмотреть шаблон классов матриц, параметризованный типом элемента и размерами матрицы.template‹class T, int Rows, int Columns›class Matrix {//…};Предположим, в процессе разработки выяснилось, что производительность программы неудовлетворительна, и узким местом является функция умножения матриц с элементами типа float, и что эту проблему можно решить путем использования intrinsic-функций процессора. При наличии соответствующей поддержки компилятора это легко можно сделать при помощи так называемой частичной специализации шаблонов классов:template‹int Rows, int Columns›class Matrix‹float, Rows, Columns› {//…};Однако некоторые компиляторы не поддерживают частичную специализацию, и, …
Иногда самые важные истории начинаются с первой страницы.






Комментарии 0