1
スタックメモリが使用されていないときに割り当てられるのはなぜですか?
次の例を考えてみます。 struct vector { int size() const; bool empty() const; }; bool vector::empty() const { return size() == 0; } 生成されたアセンブリコードvector::empty(clangによる最適化あり): push rax call vector::size() const test eax, eax sete al pop rcx ret なぜスタックスペースを割り当てるのですか?一切使用しておりません。省略することができます。MSVCとgccの最適化ビルドもこの関数にスタックスペースを使用するため(godboltを参照)、理由があるはずです。pushpop