C/C++のソースをRustへ全力で置き換えるスレ

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
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/
2023/04/18(火) 09:48:41.62ID:sxhvE7iUa
数行で収まらないソースは以下を適当に使ってURLを晒してください
https://paiza.io/projects/QiBg8xTHsfFaXapaNAIdvQ
https://ideone.com/
https://wandbox.org/
https://techiedelight.com/compiler/
https://dpaste.com/
https://pastebin.com/
2023/04/18(火) 10:50:11.14ID:sxhvE7iUa
本家
https://play.rust-lang.org/

(メモ) >>3-4 で挙げたうちの
play.rust-lang.org と wandbox.org では使っていない import で warning 出る
どちらも default が #[warn(unused_imports)]
不要な use を消すか #![allow(unused)] を入れる等適当に
2023/04/18(火) 10:50:48.56ID:sxhvE7iUa
興味がある人はブラウザでどうなるか試してみよう

safeでもメモリはぶっ壊せる
https://speakerdeck.com/moratorium08/rustfalseunsound-hole-issue-number-25860woli-jie-suru
2023/04/18(火) 12:25:27.86ID:NALS/zAj0
ワッチョイ付きじゃ例の人は来ないから隔離スレとして機能しないぞ
2023/04/18(火) 13:42:02.96ID:7GOdztOAd
おながいしまつ
https://ideone.com/L9TZlR
2023/04/18(火) 15:42:16.79ID:sxhvE7iUa
>>7
https://dpaste.com/4WBBERMTB
2023/04/19(水) 01:42:14.55ID:rDAf/S/Pa
もうちょっとスッキリ
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=c4e09ff30cf2769ee28c5e0cfa2e2e1e
dependencies 描かなくて良い play.rust-lang.org ありがたや
10デフォルトの名無しさん (スププ Sd7f-l2LK)
垢版 |
2023/04/19(水) 03:35:41.37ID:5n0sPtaFd
おながいしまつ
https://ideone.com/iPWHR0
11デフォルトの名無しさん (スフッ Sd7f-l2LK)
垢版 |
2023/04/20(木) 07:32:25.61ID:4QbBG9add
まだでつか?
2023/04/22(土) 05:13:45.40ID:ve/ll5uRa
ライフタイム付き再帰構造体を再帰関数で回してlifetimeのvarianceで苦しむまでがボローチェッカチュートリアルです
13デフォルトの名無しさん (アウウィフ FF21-1cZQ)
垢版 |
2023/04/23(日) 10:52:30.36ID:XxfCyR3vF
制約は安全性を高めるためなんだろうけど率直に言ってウザいからな
他人に書かせるならRustを選ぶかもしれんがw
自分で書くものにはRustは不要かな
2023/04/23(日) 18:43:21.25ID:y593Lq73F
>>10
勉強になった
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=8d0504c0ffbfe198b0107e49e814315b
https://gist.github.com/rust-play/8d0504c0ffbfe198b0107e49e814315b
15デフォルトの名無しさん (アウウィフ FF21-YWDm)
垢版 |
2023/04/28(金) 10:49:45.13ID:pksuSfeeF
多目的トレイト
2023/05/02(火) 14:47:07.64ID:03fZg/+od
おながいしまつ
https://pastebin.com/k1WxrDhN
2023/05/02(火) 19:44:51.40ID:CHSyAGjU0
C++toRustトランスレーター作ろうとは思わないの
18デフォルトの名無しさん (スププ Sdbf-Dpku)
垢版 |
2023/05/04(木) 14:29:32.75ID:lyoWn3h4d
ただのトランスパイラならbindgenで足りる
どうせunsafeだらけになるし
MFCみたいな糞wrapperになるのが目に見えてる
APIからRust化しないと意味無いのでは
2023/05/05(金) 00:00:57.72ID:tbrjl4OGM
何でも置き換えればいいのかな?
例えばtouchのような対象も小さく即終わるコマンドとかも書き換えたほうがいいのか?
2023/05/05(金) 00:02:42.59ID:tbrjl4OGM
書き替えたら歴史に名が残るので書き換えると言うレベルじゃないかと
それに気が付いて勝手にどんどん書き換えても正式に採用してもらえるのかは謎
2023/05/06(土) 03:39:03.02ID:l5Xh2UOq0
それより自演失敗してますよ
2023/05/08(月) 11:49:41.64ID:PotcPEgCF
cc とか bindgen とか試したが
確かにそこそこ使えるが微妙に完成度は低いと感じた
指定するオプションが足りないだけなのか
c の source は比較的完成度高くて
cpp の source は色々残念な結果になるイメージ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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