引数にポインタをとる関数がインライン化されている場合、コンパイラは最適化プロセス中に間接参照を削除しますか?もちろん、それが理にかなっているとき。
明らかな例を次に示します。
inline void say_hello (person* p) {
std::cout << "hello " << p->name << std::endl;
}
int main () {
person goldorak;
goldorak.name = "Goldorak";
say_hello(&goldorak);
return 0;
}
この場合は些細なことですが、コンパイラが最適化を行う場合、そうでない場合がありますか?
ボーナス:コンパイラによって行われたいくつかの「基本的な」最適化のリストはどこで入手できますか?
追伸:私はただ興味があります