C/C++のソースをRustへ全力で置き換えるスレ
0001デフォルトの名無しさん (アウアウウー Saef-/q5i)
垢版 |
2023/04/18(火) 09:32:38.92ID:sxhvE7iUa
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
みなさまから持ち込まれたご不要になりました古Cソース古C++コード(質問含む)をRustへ全力で置き換えるスレです
■関連スレ
結局C++とRustってどっちが良いの?2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
Rust part20
https://mevius.5ch.net/test/read.cgi/tech/1677771928/
プログラミング言語 Rust 4
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
その他は >>2-

■ワッチョイ
スレ建て時、1〜3行目に
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
をコピー

Rustの優位性とやらを全力で語りやがれ
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0002デフォルトの名無しさん (アウアウウー Sacb-/q5i)
垢版 |
2023/04/18(火) 09:37:22.98ID:sxhvE7iUa
■関連
C/C++の宿題片付けます 170代目
https://mevius.5ch.net/test/read.cgi/tech/1456911928/
C/C++の宿題片付けます 170代目
https://mevius.5ch.net/test/read.cgi/tech/1456647534/
Rust(unsafe) vs C
https://mevius.5ch.net/test/read.cgi/tech/1646151892/
競プロにおいてのRust
https://mevius.5ch.net/test/read.cgi/tech/1663352373/
そんなにRust,Rust言うならゲームエンジンでも
https://mevius.5ch.net/test/read.cgi/tech/1678619820/
Rustレスバトル会場
https://mevius.5ch.net/test/read.cgi/tech/1657382429/
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
排斥すべきゴミ言語 C++ Rust 他
https://mevius.5ch.net/test/read.cgi/tech/1643696741/
Rust part19
https://mevius.5ch.net/test/read.cgi/tech/1674007100/
Rust part6
https://mevius.5ch.net/test/read.cgi/tech/1532697692/
0010デフォルトの名無しさん (スププ Sd7f-l2LK)
垢版 |
2023/04/19(水) 03:35:41.37ID:5n0sPtaFd
おながいしまつ
https://ideone.com/iPWHR0
0011デフォルトの名無しさん (スフッ Sd7f-l2LK)
垢版 |
2023/04/20(木) 07:32:25.61ID:4QbBG9add
まだでつか?
0013デフォルトの名無しさん (アウウィフ FF21-1cZQ)
垢版 |
2023/04/23(日) 10:52:30.36ID:XxfCyR3vF
制約は安全性を高めるためなんだろうけど率直に言ってウザいからな
他人に書かせるならRustを選ぶかもしれんがw
自分で書くものにはRustは不要かな
0015デフォルトの名無しさん (アウウィフ FF21-YWDm)
垢版 |
2023/04/28(金) 10:49:45.13ID:pksuSfeeF
多目的トレイト
0018デフォルトの名無しさん (スププ Sdbf-Dpku)
垢版 |
2023/05/04(木) 14:29:32.75ID:lyoWn3h4d
ただのトランスパイラならbindgenで足りる
どうせunsafeだらけになるし
MFCみたいな糞wrapperになるのが目に見えてる
APIからRust化しないと意味無いのでは
0022デフォルトの名無しさん (ワイーワ2 FF6a-ouLR)
垢版 |
2023/05/08(月) 11:49:41.64ID:PotcPEgCF
cc とか bindgen とか試したが
確かにそこそこ使えるが微妙に完成度は低いと感じた
指定するオプションが足りないだけなのか
c の source は比較的完成度高くて
cpp の source は色々残念な結果になるイメージ
0025デフォルトの名無しさん (アウアウウー Sac3-ouLR)
垢版 |
2023/05/09(火) 10:11:05.41ID:MyUREp4Fa
新規でRustは良いと思うけど
元々C/C++のプロジェクトをRustにわざわざ入れ替えるのは
unsafe使いまくりで生ポ回避しただけのRust風C/C++コードにしかならない
気に入らないからRustらしいRustコードに少しでも近付けようとすると
結局元のコードより読み難くなるので無駄な努力に感じる
既存のC/C++資産は仮に負の資産であっても下手に触らずそのまま使う方が吉
本気で入れ替えたいなら理想を言えばAPIから再設計した方が良い
ところがRustのためのRust純正Crateになると結局C/C++の人らは近付かなくなるな
0026デフォルトの名無しさん (アウウィフ FFc3-KIRb)
垢版 |
2023/05/11(木) 10:19:47.83ID:tfz6F7+EF
bindgen::Builder に対して
.generate_inline_functions(true)
を付けてやると
bindings.rs への変換で再現性はチョット上がったが
結局 link でエラー出るわ orz
cc で -fno-default-inline で link 出来るようだが効率悪そう
(inline だから当たり前だな)
0028デフォルトの名無しさん (アウアウウー Sacd-MrxJ)
垢版 |
2024/03/27(水) 10:07:59.15ID:afJGV/5Aa
結局のところ
Box::new(hoge) じゃなくて
Arc::pin(hoge) ってことだよな
0029デフォルトの名無しさん (アウアウウー Sacd-MrxJ)
垢版 |
2024/03/27(水) 10:09:11.07ID:afJGV/5Aa
>>22
C++とRustの相性は最悪
0030デフォルトの名無しさん (ワッチョイ 8228-vSrI)
垢版 |
2024/03/28(木) 00:09:26.54ID:61/ABBlz0
無駄な努力だな。。
移行できるレベルで所有権がはっきりしてるコードならそのままのコードで十分運用できるだろ。
0031デフォルトの名無しさん (ワッチョイ 6107-Re1+)
垢版 |
2024/03/28(木) 15:38:46.41ID:160/Pdit0
発注元が言語指定してくるから
政府の勧告に基づき、今後の置き換え案件はC/C++は排除するって言ってきたりするようになるんだろう

C++はともかく、Cはトランスレータができるだろうから
そして、トランスレータの知見から、safe C/C++が育っていくだろう
0036デフォルトの名無しさん (アウアウウー Sabb-IS2W)
垢版 |
2024/04/09(火) 11:30:43.03ID:kb2+15Kqa
毎日一日一回必ず遅くなる
cargo build
cargo test
糞仕様ω
0037デフォルトの名無しさん (スププ Sd02-aQbW)
垢版 |
2024/04/09(火) 11:53:29.89ID:KoSn7rCkd
数万行にも及ぶC/C++をRustに書き換えるのは狂気の沙汰
0038デフォルトの名無しさん (ワッチョイ 7f07-OINQ)
垢版 |
2024/04/09(火) 16:27:34.77ID:ubWOnQ1+0
手で直してエンバグしてたら、C/C++ free にする意味がなくなる
自動変換ソリューション一択、実用化待ちだと思う

それが定着したら、最初から「そういう風に」C/C++を書くのも定着してくると思う
0039デフォルトの名無しさん (アウアウウー Sa83-TxeL)
垢版 |
2024/04/21(日) 15:50:31.20ID:aDRU4soda
Rust リファクタリングしてるときに
trait 境界が変わって
あれ?ってなることが多いな
レスを投稿する


ニューススポーツなんでも実況