首页 > 后端开发 > C++ > 您应该在 C 模板中使用'inline”关键字吗?

您应该在 C 模板中使用'inline”关键字吗?

Linda Hamilton
发布: 2024-12-28 13:39:10
原创
754 人浏览过

Should You Use the `inline` Keyword with C   Templates?

内联关键字与模板

当考虑使用内联关键字与模板时,会出现一个问题,考虑到编译器的能够确定内联的好处。

答案:不,不是Irrelevant

尽管编译器了解,内联关键字仍然与模板相关。虽然函数模板默认情况下通常不是内联的,但它们的显式专业化可以使它们内联。

特定情况

在某些情况下,省略 inline 关键字可能会导致问题。考虑以下示例:

#include "tpl.h"
登录后复制
登录后复制
#include "tpl.h"
登录后复制
登录后复制
#ifndef TPL_H
#define TPL_H
template<class T> void f(T) {}
template<class T> inline T g(T) {}

template<> inline void f<>(int) {} // OK: inline
template<> int g<>(int) {} // error: not inline
#endif
登录后复制

编译此代码会导致多个定义错误,因为 g未明确标记为内联。

经验法则

为了保持一致性并避免潜在错误,请考虑对打算内联的函数模板使用 inline 关键字。这与 Vandevoorde/Josuttis 的“C 模板:完整指南”中建议的经验法则一致,该规则建议在真正需要时进行内联编写。

以上是您应该在 C 模板中使用'inline”关键字吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板