首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++模板力学

C++模板力学
EN

Stack Overflow用户
提问于 2014-06-14 21:49:29
回答 2查看 124关注 0票数 2

我试图在c++中学习模板,但我对自己找不到答案表示怀疑。如果这不是一个恰当的问题,我很抱歉。

如果我有以下代码:

代码语言:javascript
复制
template< class T >
T func( T a, T b )
{
    return a + b;
}

然后:

代码语言:javascript
复制
int number = func( 2, 3 );

数字将被简单地设置为5还是一个函数?

代码语言:javascript
复制
int func( int a, int b )
{
    return a + b;
}

被生成?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-14 21:57:46

两者(:代码:

代码语言:javascript
复制
int number = func( 2, 3 );

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

代码语言:javascript
复制
int number = 5;
票数 6
EN

Stack Overflow用户

发布于 2014-06-14 22:04:24

相当于

代码语言:javascript
复制
int func( int a, int b )
{
    return a + b;
}

肯定会生成(当然,除非是优化出来的)。要看这个,试着

代码语言:javascript
复制
int (*func_int)(int, int) = func<int>; // pointer to instantiated function
int number = func_int(2, 3); // sets number to 5
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24224632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档