Nein, es gibt keine Garantie, dass der Aufruf einer Inline-Funktion tatsächlich dazu führt, dass die Funktion inline ausgeführt wird. Wenn sich die Inline-Funktion beispielsweise rekursiv selbst aufruft, wird sie wahrscheinlich nicht inline sein. Ebenso können Aufrufe durch eine Funktionszeigervariable oft nicht inline ausgeführt werden.
Wenn eine Inline-Funktion externe Bindung hat, dann während der Verknüpfung, wenn die Inline-Funktion in mehreren Übersetzungseinheiten definiert ist, wählt der Linker eine der Übersetzungseinheiten, die Definition enthalten, und löst alle verbleibenden Referenzen (dh odr - verwendet vom Compiler nicht inlined) zu dieser Funktion der Definition in der gewählten Übersetzungseinheit, wobei die übrigen Definitionen verworfen werden. Inline-Variablen funktionieren auf die gleiche Weise.