這是一個(gè)幾乎是私人的ISO 14882的內(nèi)容翻譯,希望看官指出不足!
本文地址
9.1.6
1
inline指定符僅僅只能出現(xiàn)在變量或函數(shù)的聲明或定義處.
2
一個(gè)用了inline指定符的函數(shù)聲明聲明了一個(gè) inline function.其中,inline指定符對(duì)實(shí)現(xiàn)表明:相對(duì)于通常的函數(shù)調(diào)用機(jī)制應(yīng)優(yōu)先考慮在函數(shù)調(diào)用處進(jìn)行函數(shù)體的內(nèi)聯(lián)替換.實(shí)現(xiàn)并沒有被要求一定要在調(diào)用處執(zhí)行這個(gè)內(nèi)聯(lián)替換;然而,就算這個(gè)內(nèi)聯(lián)替換被忽略,但是對(duì)于在本文中出現(xiàn)的對(duì)inline function的規(guī)定依然是要求被遵守的.
3
一個(gè)用了inline制定符的變量聲明聲明了一個(gè) inlie variable.
4
在類定義內(nèi)的函數(shù)定義是一個(gè)inline function
5
inline指定符不應(yīng)該出現(xiàn)在塊作用域的聲明中,如果inline指定符在friend function declaration(友元函數(shù))定義處,則該函數(shù)的聲明應(yīng)該是一個(gè)定義或該函數(shù)應(yīng)該預(yù)先就聲明為了inline.
6
一個(gè)inline函數(shù)或變量應(yīng)該在每個(gè)其被odr-used[ToDo]的翻譯單元中定義并且在每個(gè)定義的翻譯單元中有著完全一樣的聲明.[注意:調(diào)用inline函數(shù)或使用inline變量可能在其被當(dāng)前翻譯單元定義前]在一個(gè)翻譯單元中如果一個(gè)函數(shù)或變量在它的第一個(gè)inline聲明前被定義則程序是ill-formed的.如果一個(gè)函數(shù)或變量有外部鏈接同時(shí)在一個(gè)翻譯單元中被聲明為inline,則它應(yīng)該在期出現(xiàn)的所有的翻譯單元中都被聲明為inline;對(duì)此不做診斷(霧).一個(gè)有外部鏈接的inline變量或函數(shù)在所有的翻譯單元中地址都相同[注意:在有外部鏈接的inline函數(shù)中的一個(gè)static的本地變量也都指的是一個(gè)對(duì)象.在有外部鏈接的inline函數(shù)中的類型定義在每個(gè)翻譯單元中都是同樣的類型]
94
inline關(guān)鍵字不對(duì)函數(shù)的鏈接產(chǎn)生影響