经常有人说,带有大量模板的代码会导致输出的大小增加,但这是真的吗?
上面的例子生成不同大小的输出(函数输出为6.19k,模板函数输出为6.16k)。为什么使用模板的版本更小?
如果有影响的话,我正在使用带有下一个选项“-O3 -Wextra -Wall -pedantic”的g ++ 4.6.1。我不确定其他编译器的输出是什么。
#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.19k,模板函数输出为6.16k)。为什么使用模板的版本更小?
如果有影响的话,我正在使用带有下一个选项“-O3 -Wextra -Wall -pedantic”的g ++ 4.6.1。我不确定其他编译器的输出是什么。