c++思维,内联函数功能
thinking in C++, inline function feature?
以下代码来自《Thinking in c++》。作者提到:"由于操作符[]是内联的,您可以使用这种方法来保证不会发生违反数组边界的情况,然后删除发送代码的require()。"这里提到的内联函数的什么特性?谢谢!
#include "../require.h"
#include <iostream>
using namespace std;
template<class T>
class Array {
enum { size = 100 };
T A[size];
public:
T& operator[](int index) {
require(index >= 0 && index < size,
"Index out of range");
return A[index];
}
};
作者提到要在调用站点展开inline
函数的特性,就好像您在调用的地方编写了它们的主体。这保证不会损失效率——即使是在现代硬件上调用函数时的微小损失。此外,当索引操作符内联展开时,编译器可能会更好地优化代码,因为优化器可以知道函数内部代码的性质。
至于从运输代码中删除require
,您需要在当前实现中手动执行。您还可以使用条件编译来删除产品代码中的边界检查。
相关文章:
- C++:函数外部的超时功能
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- 设计模式,以避免不必要地添加抽象函数以适应新功能
- 当我链接两个静态C++库时,我可以在两个主函数库中有两个主要功能吗?
- 具有C++迭代器参数的多功能函数
- 错误:调用'strcmp'没有匹配函数(尝试设置显示用户信息功能)
- 我有模板功能.通过使用函数std::for_each,用这个容器中的最大数字替换每个正数
- 是否有一个Windows驱动程序函数可以执行Windows文件api SeFileAttributes的等效功能
- 自定义 {fmt} 格式化函数,具有编译时格式字符串检查功能
- 如何在带有初始值设定项的构造函数中使用 vprintf/cstdarg 功能?
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- 如何使用结构内的功能指针调用私有函数
- C 函数调用包装器包含类成员功能作为模板参数
- 您如何在与打开窗口的功能的不同函数中使用Draw函数
- 虚拟静态函数功能的解决方法
- 实现 C++11 委派构造函数功能会导致多个警告
- 复制构造函数功能
- C++构造函数功能
- 如何在保持标准c++函数功能的同时绕过它
- c++思维,内联函数功能