inline キーワードを使用したり、クラス宣言にメソッドを挿入したり、短い ctor または getter メソッドを使用したりできることは理解していますが、メソッドをいつインライン化するかについて最終的な決定を下すのはコンパイラですか?
例えば:
inline void Foo::vLongBar()
{
//several function calls and lines of code
}
コードが非効率になるとコンパイラが判断した場合、コンパイラはインライン宣言を無視しますか?
副次的な問題として、次のようにクラス外で宣言された getter メソッドがある場合:
void Foo::bar() { std::cout << "baz"; }
コンパイラはこれを裏でインライン化しますか?