вается подставляемая функция o

Автор admin Суббота, 23 мая 2009 11:32

вается подставляемая функция operator+(). В свою очередь, она вставляет выражение MVS(vl,v2) в поток компиляции. Результат прибавляется к v3, что приводит к созданию временного объекта в соответствии с выражением MVS(MVS(vl,v2),v3). В окончательном виде вся команда выглядит так: v4.operator+(MVS(MVS(vl. v2). v3)); Все эти действия выполняются компилятором. Это объясняет, почему за этой методикой закрепилось название «шаблоны выражений». Шаблон MyVectorSum представляет выражение (сумму в данном случае), а вложенные вызовы напоминают дерево разбора левоассоциативного выражения vl + v2 +v3. Модели компиляции шаблонов Вероятно, вы заметили, что во всех наших примерах шаблонов в каждую единицу трансляции включаются полные определения шаблонов (например, мы размещаем их полностью в программах из одного файла или в заголовочных файлах в программах из нескольких файлов). Это противоречит общепринятой практике отделения определений обычных функций от их объявлений, когда объявления размещаются в заголовочных файлах, а реализация — в срр-файлах. Для традиционных функций такое разделение объясняется следующими при


Комментарии закрыты.