比如如果程序要取某个 inline 函数的地址, 编译器通常必须为此函数生成一个 outlined 函数本体. 毕竟编译器没有能力提出一个指针指向并不存在的函数....如果有个异常在对象构造期间被跑出, 该对象已构造好的那一部分会被自动销毁....现在我们可以看到, 将构造函数和析构函数 inline 化并不是一个轻松的决定....程序设计者必须知道, inline 函数无法跟随程序库的升级而升级
如果 f 是程序库内一个 inline 函数, 客户将 f 函数本体编进其程序中, 一旦程序库设计者决定改变 f, 所有用到 f 的客户端程序都必须重新编译...而如果 f 是 non-inline 函数, 一旦它有任何修改, 客户端只需重新连接就好, 远比重新编译的负担少很多. 如果程序库采用动态连接, 升级版函数甚至可以不知不觉的被应用程序采纳.