Aussie AI
Non-inlined functions
-
Book Excerpt from "Generative AI in C++"
-
by David Spuler, Ph.D.
Non-inlined functions
Some functions declared as inline
will not be expanded into inline code by the
compiler, simply because they are too complicated for the compiler to handle. In this
case, the inline
specifier is ignored and the function is treated like any other function.
The sophistication of the inline code generation depends on the compiler implementor.
Even if a compiler could theoretically inline a function, the compiler is sometimes still forced to generate a “real” function. There are various possible reasons for this:
1. The name of an inline
function is used as a pointer-to-function constant.
2. A call to the inline
function from within another source file.
3. virtual
member functions.
When an inline
function is called from a source file, where the function body has not
been made available, the compiler generates a real function call (simply because it cannot
inline the function). Hence, the real function must exist and be linked like any other
function. Fortunately, the placement of inline
functions in header files as discussed
above will avoid this for any function the compiler decides to inline.
• Next: • Up: Table of Contents |
The new AI programming book by Aussie AI co-founders:
Get your copy from Amazon: Generative AI in C++ |