C/C++のソースをRustへ全力で置き換えるスレ
- 1 :デフォルトの名無しさん :2023/04/18(火) 09:32:38.92 ID:sxhvE7iUa.net
- !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
- 2 :デフォルトの名無しさん :2023/04/18(火) 09:37:22.98 ID:sxhvE7iUa.net
- ■関連
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/
- 3 :デフォルトの名無しさん :2023/04/18(火) 09:48:41.62 ID:sxhvE7iUa.net
- 数行で収まらないソースは以下を適当に使ってURLを晒してください
https://paiza.io/projects/QiBg8xTHsfFaXapaNAIdvQ
https://ideone.com/
https://wandbox.org/
https://techiedelight.com/compiler/
https://dpaste.com/
https://pastebin.com/
- 4 :デフォルトの名無しさん :2023/04/18(火) 10:50:11.14 ID:sxhvE7iUa.net
- 本家
https://play.rust-lang.org/
(メモ) >>3-4 で挙げたうちの
play.rust-lang.org と wandbox.org では使っていない import で warning 出る
どちらも default が #[warn(unused_imports)]
不要な use を消すか #![allow(unused)] を入れる等適当に
- 5 :デフォルトの名無しさん :2023/04/18(火) 10:50:48.56 ID:sxhvE7iUa.net
- 興味がある人はブラウザでどうなるか試してみよう
safeでもメモリはぶっ壊せる
https://speakerdeck.com/moratorium08/rustfalseunsound-hole-issue-number-25860woli-jie-suru
- 6 :デフォルトの名無しさん :2023/04/18(火) 12:25:27.86 ID:NALS/zAj0.net
- ワッチョイ付きじゃ例の人は来ないから隔離スレとして機能しないぞ
- 7 :デフォルトの名無しさん :2023/04/18(火) 13:42:02.96 ID:7GOdztOAd.net
- おながいしまつ
https://ideone.com/L9TZlR
- 8 :デフォルトの名無しさん :2023/04/18(火) 15:42:16.79 ID:sxhvE7iUa.net
- >>7
https://dpaste.com/4WBBERMTB
- 9 :デフォルトの名無しさん (アウアウウー Sacb-/q5i):2023/04/19(水) 01:42:14.55 ID:rDAf/S/Pa.net
- もうちょっとスッキリ
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.37 ID:5n0sPtaFd.net
- おながいしまつ
https://ideone.com/iPWHR0
- 11 :デフォルトの名無しさん :2023/04/20(木) 07:32:25.61 ID:4QbBG9add.net
- まだでつか?
- 12 :デフォルトの名無しさん (アウアウウー Sa21-1cZQ):2023/04/22(土) 05:13:45.40 ID:ve/ll5uRa.net
- ライフタイム付き再帰構造体を再帰関数で回してlifetimeのvarianceで苦しむまでがボローチェッカチュートリアルです
- 13 :デフォルトの名無しさん :2023/04/23(日) 10:52:30.36 ID:XxfCyR3vF.net
- 制約は安全性を高めるためなんだろうけど率直に言ってウザいからな
他人に書かせるならRustを選ぶかもしれんがw
自分で書くものにはRustは不要かな
- 14 :デフォルトの名無しさん (アウウィフ FF21-1cZQ):2023/04/23(日) 18:43:21.25 ID:y593Lq73F.net
- >>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.13 ID:pksuSfeeF.net
- 多目的トレイト
- 16 :デフォルトの名無しさん (スププ Sdbf-Dpku):2023/05/02(火) 14:47:07.64 ID:03fZg/+od.net
- おながいしまつ
https://pastebin.com/k1WxrDhN
- 17 :デフォルトの名無しさん (ワッチョイ 9f79-zzYQ):2023/05/02(火) 19:44:51.40 ID:CHSyAGjU0.net
- C++toRustトランスレーター作ろうとは思わないの
- 18 :デフォルトの名無しさん (スププ Sdbf-Dpku):2023/05/04(木) 14:29:32.75 ID:lyoWn3h4d.net
- ただのトランスパイラならbindgenで足りる
どうせunsafeだらけになるし
MFCみたいな糞wrapperになるのが目に見えてる
APIからRust化しないと意味無いのでは
- 19 :デフォルトの名無しさん (オイコラミネオ MM6b-fitb):2023/05/05(金) 00:00:57.72 ID:tbrjl4OGM.net
- 何でも置き換えればいいのかな?
例えばtouchのような対象も小さく即終わるコマンドとかも書き換えたほうがいいのか?
- 20 :デフォルトの名無しさん (オイコラミネオ MM6b-fitb):2023/05/05(金) 00:02:42.59 ID:tbrjl4OGM.net
- 書き替えたら歴史に名が残るので書き換えると言うレベルじゃないかと
それに気が付いて勝手にどんどん書き換えても正式に採用してもらえるのかは謎
- 21 :デフォルトの名無しさん (ワッチョイ 1279-y4C+):2023/05/06(土) 03:39:03.02 ID:l5Xh2UOq0.net
- それより自演失敗してますよ
- 22 :デフォルトの名無しさん :2023/05/08(月) 11:49:41.64 ID:PotcPEgCF.net
- cc とか bindgen とか試したが
確かにそこそこ使えるが微妙に完成度は低いと感じた
指定するオプションが足りないだけなのか
c の source は比較的完成度高くて
cpp の source は色々残念な結果になるイメージ
- 23 :デフォルトの名無しさん :2023/05/08(月) 12:56:13.49 ID:imilCHLn0.net
- Cはlinuxカーネルにも入るし真面目にやらんといかんけど、C++とはまだお遊びフェイズってことだろ。
C++erはまだまだRust馬鹿にしてるし。
- 24 :デフォルトの名無しさん :2023/05/08(月) 15:04:33.73 ID:NYRttg47d.net
- 結局Rust移行には無軌道な俺俺ラッパーライブラリに振り回される覚悟が要るしなぁ
あまり気が進まないのは理解できるでしょ
- 25 :デフォルトの名無しさん :2023/05/09(火) 10:11:05.41 ID:MyUREp4Fa.net
- 新規でRustは良いと思うけど
元々C/C++のプロジェクトをRustにわざわざ入れ替えるのは
unsafe使いまくりで生ポ回避しただけのRust風C/C++コードにしかならない
気に入らないからRustらしいRustコードに少しでも近付けようとすると
結局元のコードより読み難くなるので無駄な努力に感じる
既存のC/C++資産は仮に負の資産であっても下手に触らずそのまま使う方が吉
本気で入れ替えたいなら理想を言えばAPIから再設計した方が良い
ところがRustのためのRust純正Crateになると結局C/C++の人らは近付かなくなるな
- 26 :デフォルトの名無しさん (アウウィフ FFc3-KIRb):2023/05/11(木) 10:19:47.83 ID:tfz6F7+EF.net
- bindgen::Builder に対して
.generate_inline_functions(true)
を付けてやると
bindings.rs への変換で再現性はチョット上がったが
結局 link でエラー出るわ orz
cc で -fno-default-inline で link 出来るようだが効率悪そう
(inline だから当たり前だな)
- 27 :デフォルトの名無しさん (ワッチョイ 335f-GJof):2023/05/15(月) 02:39:55.46 ID:s5edYhaR0.net
- 完全に思い付きで言うけどltoしてみれば?
- 28 :デフォルトの名無しさん:2023/08/22(火) 16:19:28.15 ID:afgpBOp6x
- 〔入れてはならない政党5大税金泥棒政策]
観光促進…温室効果ガスに騒音にコロナにとまき散らして気候変動災害連発させて国土破壊して人を殺して儲ける強盗殺人推進腐敗テ□国家な
軍備拡張…ウクライナは軍事費GDP比4%超て゛脅威視されて攻撃されたわけが、白々しく挑発して軍拡利権を獲得したい岸田異次元増税文雄
金融緩和…資本家階級資産倍増、もはやひとりて゛資産1兆円超,末代まて゛揺らぐことのない圧倒的格差社会優越的地位濫用促進政策な
子供給付…全国航空騒音まみれで勉強まで妨害しながら、貧乏人に不幸な子を産み落とさせて遺棄を推進する国家犯罪地球破壊人殺し政策な
正しい子供政策とは、ひとり産むごとに5千万課税、払える見込みがなければ日当5千円で塀の中から子に送金させることだろ
原発稼働…クソポリヘリ含むクソ航空機バンバン飛ばしまくって莫大な石油を無駄に燃やしまくって威力業務妨害による知的産業壊滅によって
システム障害まみれのポンコツ腐敗後進国が笑わせよる。テロリスト自民公明が第二のフクシマ利権確保したいだけなのがバレバレ
(羽田)ttps://www.call4.jp/info.Ρhp?type=itеms&id=I0000062 , Τтps://haneda-project.jimdofree.com/
(成田)ttps://n-souonhigaisosУoudan.amebaownd.com/
(テ口組織)tтps://i.imgur.com/hnli1ga.jPeg
- 29 :デフォルトの名無しさん:2023/09/30(土) 02:44:53.63 ID:WZ30W7jvy
- 世界最悪の脱炭素拒否テ口国家に送られる化石賞連続受賞して世界中から非難されながら憲法13条25条29条と公然と無視してカによる─方的な
現状変更によってクソ航空機倍増.閑静な住宅地から都心まて゛数珠つなき゛で鉄道の30倍以上もの莫大な温室効果カ゛スまき散らして騷音まみれ
住民の生活破壞して静音か゛生命線の知的産業壊滅させながら何ひとつ補償もしないってのに漁業関係者の税金1000億超強奪には唖然とするな
釣り竿で魚釣りしたり浜辺で貝を採って自分で食べることすら許さないおぞましい利権害虫のヤクサ゛ふ゜り炸裂してやか゛る
今まて゛クソシナか゛買ってくれてたことを特別に思うと゛ころか税金で補填しろだのもはや国内的にも不買運動しないとな
今年5月にフクシマ沖の魚から1萬8000ヘ゛クレルものセシウム検出が公表されたわけた゛か゛要するに0.342ミリシ―ベ儿ト
─般の人の被曝限度は年間1ミリシ−ヘ゛儿├た゛からこの魚を3匹食へ゛たら被曝限度を超過するのが現実の中さらに核汚染水排出
これから生物濃縮が加速度的に進むわけだが癌になったり奇形児産み落としてでもヤクザの資金源になりたい竒特な奴は死ぬ氣で頑張れ
(羽田)ttps://www.call4.jp/info.php?type=items&id=I0000062 , ttps://haneda-project.jimdofree.com/
(成田)ttps://n-souonhigaisosyoudan.amebaownd.com/
(テロ組織)ttps://i.imgur.com/hnli1ga.jpeg
- 30 :デフォルトの名無しさん :2024/03/27(水) 10:07:59.15 ID:afJGV/5Aa.net
- 結局のところ
Box::new(hoge) じゃなくて
Arc::pin(hoge) ってことだよな
- 31 :デフォルトの名無しさん :2024/03/27(水) 10:09:11.07 ID:afJGV/5Aa.net
- >>22
C++とRustの相性は最悪
- 32 :デフォルトの名無しさん :2024/03/28(木) 00:09:26.54 ID:61/ABBlz0.net
- 無駄な努力だな。。
移行できるレベルで所有権がはっきりしてるコードならそのままのコードで十分運用できるだろ。
- 33 :デフォルトの名無しさん :2024/03/28(木) 15:38:46.41 ID:160/Pdit0.net
- 発注元が言語指定してくるから
政府の勧告に基づき、今後の置き換え案件はC/C++は排除するって言ってきたりするようになるんだろう
C++はともかく、Cはトランスレータができるだろうから
そして、トランスレータの知見から、safe C/C++が育っていくだろう
- 34 :デフォルトの名無しさん (オッペケ Sr79-M0x+):2024/03/28(木) 17:04:34.56 ID:25qMudWUr.net
- 美味しい仕事じゃね
ミシュラだのもついでに窓からポイ
- 35 :デフォルトの名無しさん (オッペケ Sr79-M0x+):2024/03/28(木) 17:05:32.14 ID:25qMudWUr.net
- return は一箇所にしろ~
省略出来るぞガハハ
- 36 :デフォルトの名無しさん (ワッチョイ b25f-lBRV):2024/04/08(月) 19:14:28.45 ID:tTCpytrL0.net
- rustでlongjumpってどうやんの?
- 37 :デフォルトの名無しさん :2024/04/08(月) 21:06:20.57 ID:6B+IO5Hjr.net
- libcにないのかい
- 38 :デフォルトの名無しさん (アウアウウー Sabb-IS2W):2024/04/09(火) 11:30:43.03 ID:kb2+15Kqa.net
- 毎日一日一回必ず遅くなる
cargo build
cargo test
糞仕様ω
- 39 :デフォルトの名無しさん (スププ Sd02-aQbW):2024/04/09(火) 11:53:29.89 ID:KoSn7rCkd.net
- 数万行にも及ぶC/C++をRustに書き換えるのは狂気の沙汰
- 40 :デフォルトの名無しさん :2024/04/09(火) 16:27:34.77 ID:ubWOnQ1+0.net
- 手で直してエンバグしてたら、C/C++ free にする意味がなくなる
自動変換ソリューション一択、実用化待ちだと思う
それが定着したら、最初から「そういう風に」C/C++を書くのも定着してくると思う
- 41 :デフォルトの名無しさん :2024/04/21(日) 15:50:31.20 ID:aDRU4soda.net
- Rust リファクタリングしてるときに
trait 境界が変わって
あれ?ってなることが多いな
13 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200