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

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

Linda Hamilton
Linda Hamilton原创
2024-12-28 13:39:10757浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn