dcl.inline 翻译

这是一个几乎是私人的ISO 14882的内容翻译,希望看官指出不足!
本文地址


9.1.6

1

inline指定符仅仅只能出现在变量或函数的声明或定义处.

2

一个用了inline指定符的函数声明声明了一个 inline function.其中,inline指定符对实现表明:相对于通常的函数调用机制应优先考虑在函数调用处进行函数体的内联替换.实现并没有被要求一定要在调用处执行这个内联替换;然而,就算这个内联替换被忽略,但是对于在本文中出现的对inline function的规定依然是要求被遵守的.

3

一个用了inline制定符的变量声明声明了一个 inlie variable.

4

在类定义内的函数定义是一个inline function

5

inline指定符不应该出现在块作用域的声明中,如果inline指定符在friend function declaration(友元函数)定义处,则该函数的声明应该是一个定义或该函数应该预先就声明为了inline.

6

一个inline函数或变量应该在每个其被odr-used[ToDo]的翻译单元中定义并且在每个定义的翻译单元中有着完全一样的声明.[注意:调用inline函数或使用inline变量可能在其被当前翻译单元定义前]在一个翻译单元中如果一个函数或变量在它的第一个inline声明前被定义则程序是ill-formed的.如果一个函数或变量有外部链接同时在一个翻译单元中被声明为inline,则它应该在期出现的所有的翻译单元中都被声明为inline;对此不做诊断(雾).一个有外部链接的inline变量或函数在所有的翻译单元中地址都相同[注意:在有外部链接的inline函数中的一个static的本地变量也都指的是一个对象.在有外部链接的inline函数中的类型定义在每个翻译单元中都是同样的类型]

94

inline关键字不对函数的链接产生影响

你可能感兴趣的:(dcl.inline 翻译)