inl文件:inl文件是内联函数的源文件。
内联函数通常在C++头文件中实现,但是当C++头文件中内联函数过多的情况下,
我们想使头文件看起来简洁点,像普通函数那样将内联函数声明和函数定义放在头文件和实现文件中,
具体做法将是:将内联函数的具体实现放在inl文件中,然后在该头文件末尾使用#include引入该inl文件。
//inl_demo.h
#ifndef _INL_DEMO_H_
#define _INL_DEMO_H_
template<typename T>
T return_max(T &T1, T &T2);
#include "inl_demo.inl"
#endif
//inl_demo.inl
#ifndef _INL_DEMO_INL_
#define _INL_DEMO_INL_
#include "inl_demo.h"
template<typename T>
T return_max(T &T1, T &T2){
return T1 > T2 ? T1 : T2;
}
#endif
//main.cc
#include <iostream>
#include "inl_demo.h"
using namespace std;
int main(int argc, char *argv[]){
int a = 10;
int b = 20;
cout << "The Max is :" << return_max(a, b) << endl;
return 0;
}
在UE4源码中,智能指针库(SharedPoint.h
)就包含了”SharedPointerTesting.inl
“这个内联文件用于测试,使得SharedPoint.h
文件本身更加简洁以及区分功能