如何保证函数在C++中内联

Kad*_*iam 0 c++ inline-functions

在C++中,可以使用inline关键字将函数定义为内联.这就像程序员从编译器请求在函数调用的每个地方插入函数的完整主体.

但据我所知,编制者没有义务尊重这一要求.那么有什么方法可以保证函数内联?

Pup*_*ppy 8

不.实际上内联函数是一个完整的实现细节,许多函数都不能内联.这使得内联强制机制的存在变得不可能.即使是提供像__forceinline(VC++)这样的关键字的编译器,在某些情况下也不会使用该限定符来内联函数.该页面有一个关于滥用此限定符的非常恰当的警告.


fla*_*ngo 5

采用__forceinline在VC ++和__attribute__((always_inline))以g ++

  • @DeadMG:据我所知,如果可能的话,它会强制内联;对我来说,很明显,当不可能时,没有什么可以强迫它。 (2认同)