Код шаблона увеличивает размер двоичного файла

Часто говорят, что код с большим количеством шаблонов вызовет размер вывода увеличивается, но так ли это на самом деле?

#include <iostream>

#if 0
void foo( const int &v)
{
    std::cout<<v<<std::endl;
}
#else
template< typename T >
void foo( const T &v)
{
    std::cout<<v<<std::endl;
}
#endif

int main ()
{
    foo(50);
}

В приведенном выше примере выводятся выходные данные разных размеров (6,19 Кбайт с функцией и 6,16 Кбайт с функцией шаблона). Почему версия с шаблоном меньше?

Если это важно, я использую g ++ 4.6.1 со следующими параметрами -O3 -Wextra -Wall -pedantic . Я не уверен, что выводят другие компиляторы.

5
задан ildjarn 23 November 2011 в 21:35
поделиться