と言うかRustの利点はそこにあるんやろ
特に返り値のとき
返り値に大きいサイズのObjectを返すときが問題
その場合Cでは返り値のどデカい構造体を呼び出し側のスタック領域にコピーする手間がどうしてもかかってしまう
それを避けるには
・返り値をヒープに領域確保して返す
・呼び出し側で受け取りようの空の構造体領域を呼び出し側スタックエリアに確保してその参照を渡して返り値をそこに書き込んでもらう
くらいしかない
しかしヒープにわざわざ永続的には存在する必要のないデータの受け渡しのためエリアをとるとフラグメンテーションの原因になるし、呼び出し側が返り値の大きさをあらかじめ計算してから領域確保して呼び出さないといけないのはメチャクチャ手間がかかってしまう
Rustなら返り値の構造体をダイレクトに呼び出し側のスタックエリアに確保できる(と思う、未確認)のでそこでパフォーマンスの優位性が出る(ハズ)
今のC,C++にはこのメカニズムを実現する方法はないと思う