RAD Studio
ContentsIndex
PreviousUpNext
W8027: Functions containing 'statement' are not expanded inline (C++)

(Command-line option to suppress warning: -w-inl) 

Where: 

'statement' can be any of the following:

  • Static variables
  • Aggregate initializers
  • Some return statements
  • Local destructors
  • Some if statements
  • Local classes
  • Missing return statements
  • Disallowed reserved words listed under "Reserved words" below.
Reserved words 

Functions containing any of these reserved words can't be expanded inline, even when specified as inline:

asm  
except  
break  
finally  
case  
for  
continue  
goto  
defaults  
switch  
do  
while  

The function is still perfectly legal, but will be treated as an ordinary static (not global) function. 

A copy of the function will appear in each compilation unit where it is called. 

Description 

If an inline function becomes too complex, the compiler is unable to expand it inline. However, because the function is so complex, expanding it inline is unlikely to provide significant performance enhancements. 

For local destructors 

You've created an inline function for which the compiler turns off inlining. You can ignore this warning; the function will be generated out of line.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!