Часто говорят, что код с большим количеством шаблонов вызовет размер вывода увеличивается, но так ли это на самом деле?
#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
. Я не уверен, что выводят другие компиляторы.