C ++模板机制

时间:2014-06-14 21:49:29

标签: c++ templates

我试图用c ++学习模板,但我怀疑自己无法找到答案。如果这不是一个合适的问题,我会提前抱歉。

如果我有以下代码:

template< class T >
T func( T a, T b )
{
    return a + b;
}

然后:

int number = func( 2, 3 );

将数字简单地设置为5或将是一个函数

int func( int a, int b )
{
    return a + b;
}

生成?

我需要知道我是否可以创建一个模板来检查某个字符串是否在文件中。

2 个答案:

答案 0 :(得分:6)

两者(:代码:

int number = func( 2, 3 );

将实例化int类型的模板函数,但编译器可能(取决于编译器选项)实际上将其优化为:

int number = 5;

答案 1 :(得分:1)

相当于

的功能
int func( int a, int b )
{
    return a + b;
}
肯定会生成

(当然,除非它已经过优化)。要查看此内容,请尝试

int (*func_int)(int, int) = func<int>; // pointer to instantiated function
int number = func_int(2, 3); // sets number to 5