Rustで数値計算
![Rustで数値計算](https://cdn-ak-scissors.b.st-hatena.com/image/square/0972319d725f2d7cdb26e80eb9ac6f86a21a7ba5/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--5q1inEuk--%2Fg_center%252Ch_280%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYm9va19jb3Zlci83MWJmNTE5N2I1LmpwZw%3D%3D%252Cw_200%2Fv1627283836%2Fdefault%2Fog-base-book_yz4z02.jpg)
Rust 1.71.0でC-unwind ABIが安定化されました これによりFFI境界を越えて処理を巻き戻せるようになります。例えばC++からRustの関数を呼び出し、RustからさらにC++の関数を呼び出しているとき、一番内側のC++関数が例外を投げると従来はそれをRustの層を越えて元のC++側に伝搬させる事が出来ませんでしたが、1.71.0からは可能になります。 今回実験したコードは以下にあります。 まずRust側から見ていきましょう。 #[no_mangle] extern "C-unwind" fn rust_middle_func(callback: extern "C-unwind" fn()) { let _a = A {}; // test destructor callback(); // This raises C++ exception // Following
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く