Sdílet prostřednictvím


Kdy použít vložené funkce

Vložené funkce je nejvhodnější používat pro malé funkce, například přístup k soukromým datovým členům.Hlavním účelem těchto "přístupových" funkcí s jedním nebo dvěma řádky je vrátit stavové informace o objektech. Krátké funkce jsou citlivé na režii spojenou s voláním funkcí.Delší funkce stráví sekvencemi volání a vrácení poměrově méně času a jejich vkládání přináší menší užitek.

Příklad

Třídu Point zavedenou v tématu Výsledky volání funkcí lze optimalizovat takto:

// when_to_use_inline_functions.cpp
class Point
{
public:
    // Define "accessor" functions as
    //  reference types.
    unsigned& x();
    unsigned& y();
private:
    unsigned _x;
    unsigned _y;
};

inline unsigned& Point::x()
{
    return _x;
}
inline unsigned& Point::y()
{
    return _y;
}
int main()
{
}

Za předpokladu, že manipulace se souřadnicemi je v klientu takové třídy poměrně běžnou operací, zadání daných dvou přístupových funkcí (x a y v předchozím příkladu) s klíčovým slovem inline obvykle šetří režii při těchto činnostech:

  • Volání funkcí (včetně předávání parametrů a ukládání adresy objektu do zásobníku)

  • Zachování rámce zásobníku volajícího

  • Nové nastavení rámce zásobníku

  • Komunikace návratové hodnoty

  • Obnovení původního rámce zásobníku

  • Výsledek

Viz také

Referenční dokumentace

inline, __inline, __forceinline