「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ
・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください↓
前スレ: 結局C++とRustってどっちが良いの? 7traits
http://mevius.5ch.net/test/read.cgi/tech/1693451813/
関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
探検
結局C++とRustってどっちが良いの? 8traits
レス数が1000を超えています。これ以上書き込みはできません。
2023/10/28(土) 13:45:00.38ID:fh9BWjjr
912デフォルトの名無しさん
2023/12/05(火) 20:31:30.51ID:GM9Glwep913デフォルトの名無しさん
2023/12/05(火) 21:15:38.20ID:HiCWBikd やりたいことが出来るのが一番の理由
アンリミテッドが魅力
アンリミテッドが魅力
914デフォルトの名無しさん
2023/12/05(火) 21:36:14.43ID:9fH1d+k3 参照カウントて結構コストあったよな……と探したら解説見つけた。
yamasa.hatenablog.jp/entry/2021/01/29/012525
昔は並列処理と相性悪いと言われていたけど、今はどうかね?
yamasa.hatenablog.jp/entry/2021/01/29/012525
昔は並列処理と相性悪いと言われていたけど、今はどうかね?
915デフォルトの名無しさん
2023/12/05(火) 21:36:19.50ID:ckmQfDX3 ++C Unsafety Unlimited C++
916デフォルトの名無しさん
2023/12/05(火) 21:43:08.45ID:tZxAn7Rl917デフォルトの名無しさん
2023/12/05(火) 21:59:57.96ID:puqODfvy918デフォルトの名無しさん
2023/12/05(火) 22:10:46.45ID:vNAfxFS3 >>911
RAII自体はコストゼロ
RAIIで解放されるスタック上の値の型にデストラクタがある時にその実行コストがかかる
そしてヒープ領域を所有していればヒープ解放コストがかかる
何度もヒープ確保解放を繰り返すよりはなるべく最初に確保するのはもちろん正しい
スタック領域で済ませられるならさらに望ましい
RAII自体はコストゼロ
RAIIで解放されるスタック上の値の型にデストラクタがある時にその実行コストがかかる
そしてヒープ領域を所有していればヒープ解放コストがかかる
何度もヒープ確保解放を繰り返すよりはなるべく最初に確保するのはもちろん正しい
スタック領域で済ませられるならさらに望ましい
919デフォルトの名無しさん
2023/12/05(火) 22:57:00.41ID:iiJ5Z2H1 全部独り言だったりしてw
920デフォルトの名無しさん
2023/12/06(水) 01:20:30.01ID:N0N71GtG メモリに展開するのにオーバーフローしてもエラーを通知しないの?
https://japan.zdnet.com/article/35212258/
言語はCらしいけどどういうプログラムなんだろう
まじでmallocしてそこにmemcpyしてるだけなんじゃないか
対策はRustで書き直せ
https://japan.zdnet.com/article/35212258/
言語はCらしいけどどういうプログラムなんだろう
まじでmallocしてそこにmemcpyしてるだけなんじゃないか
対策はRustで書き直せ
921デフォルトの名無しさん
2023/12/06(水) 01:23:15.09ID:N0N71GtG たとえクソレガシーだったとしても書き込むアドレスの範囲が想定してるものかのチェックは入れるべきだろう
どうせオフセットも手計算だろうし
どうせオフセットも手計算だろうし
922デフォルトの名無しさん
2023/12/06(水) 01:40:45.31ID:MT5mgeUa923デフォルトの名無しさん
2023/12/06(水) 01:58:21.86ID:+XLnMsko [gc unsafe] [🔍]
924デフォルトの名無しさん
2023/12/06(水) 09:15:07.04ID:oM0gjrfW >>867-868
循環参照は?
循環参照は?
925デフォルトの名無しさん
2023/12/06(水) 09:17:14.31ID:oM0gjrfW926デフォルトの名無しさん
2023/12/06(水) 09:18:07.12ID:oM0gjrfW >925 補足
a)全ての本で紹介されていない (紹介されてる本は少なくとも一つ以上ある)
a)全ての本で紹介されていない (紹介されてる本は少なくとも一つ以上ある)
927デフォルトの名無しさん
2023/12/06(水) 09:20:39.56ID:oM0gjrfW928デフォルトの名無しさん
2023/12/06(水) 10:53:51.94ID:CNnXy5JV >>922
メジャーなとこで言えばC#とかSwiftとか
メジャーなとこで言えばC#とかSwiftとか
929デフォルトの名無しさん
2023/12/06(水) 11:45:54.12ID:oM0gjrfW >>905
やっぱりNATテーブル不良で再起動したら治るルーターじゃん
やっぱりNATテーブル不良で再起動したら治るルーターじゃん
930デフォルトの名無しさん
2023/12/06(水) 12:09:32.50ID:4VSkBLs6 >>929
頭大丈夫か?
頭大丈夫か?
931デフォルトの名無しさん
2023/12/06(水) 12:31:44.18ID:3kI3ay52 型推論の是非を問いたい
書くのは楽かもしれないが読みにくくね?
型の重複記述は省きたいがまったく型がわからなくなると理解が難しくなる
読みやすさを優先すべきだと思うがどうだろう
IDEやエディタのサポートでカバーされるという考え方もあるが、カーソル合わせないとわからないしな
書くのは楽かもしれないが読みにくくね?
型の重複記述は省きたいがまったく型がわからなくなると理解が難しくなる
読みやすさを優先すべきだと思うがどうだろう
IDEやエディタのサポートでカバーされるという考え方もあるが、カーソル合わせないとわからないしな
932デフォルトの名無しさん
2023/12/06(水) 12:44:38.03ID:lEEu+DT0933デフォルトの名無しさん
2023/12/06(水) 12:46:06.06ID:MT5mgeUa934デフォルトの名無しさん
2023/12/06(水) 12:51:11.58ID:MT5mgeUa935デフォルトの名無しさん
2023/12/06(水) 12:54:09.75ID:B4jpx9xe 複雑な型名を知る必要がない場合も多い
例えばRustなら関数の引数型も返り型でも具体的な型名を書かずに
impl Trait名 と使う機能のトレイト名だけを指定したり
例えばRustなら関数の引数型も返り型でも具体的な型名を書かずに
impl Trait名 と使う機能のトレイト名だけを指定したり
936デフォルトの名無しさん
2023/12/06(水) 12:56:26.38ID:lEEu+DT0937デフォルトの名無しさん
2023/12/06(水) 13:09:40.96ID:6EzLMFr7 同じ情報を二重に書くのはプログラマなら普通疑問に思う
938デフォルトの名無しさん
2023/12/06(水) 13:12:47.35ID:N0N71GtG >>924
コピー時はweak_refで渡すので良いかと思うのだが
コピー時はweak_refで渡すので良いかと思うのだが
939デフォルトの名無しさん
2023/12/06(水) 13:14:02.81ID:N0N71GtG940デフォルトの名無しさん
2023/12/06(水) 13:17:03.16ID:3kI3ay52 >>937
ある程度の重複さによってミスを早期発見できる効果があるから一概にそうはいえないぞ
ある程度の重複さによってミスを早期発見できる効果があるから一概にそうはいえないぞ
941デフォルトの名無しさん
2023/12/06(水) 13:31:08.88ID:UHi6Tpqq 俺のプログラムにバグがあるのは
俺がまだ本気出してないだけだから
俺がまだ本気出してないだけだから
942デフォルトの名無しさん
2023/12/06(水) 13:38:13.20ID:+XLnMsko どれだけスレが進行しても客観的な基準が示されず
主観バトルを発生させ続け
留まるところを知らない概念
可読性
主観バトルを発生させ続け
留まるところを知らない概念
可読性
943デフォルトの名無しさん
2023/12/06(水) 13:40:26.85ID:uGBP6FLN >>938
いやそれだとshared_ptrの意味ないから
shared_ptr使う限りは本質的には解決は難しい
それは生でshared_ptr使う場合も同じ
get_weakというメソッドでweak_refでラップして返すメソッドを提供するとかだろう
いやそれだとshared_ptrの意味ないから
shared_ptr使う限りは本質的には解決は難しい
それは生でshared_ptr使う場合も同じ
get_weakというメソッドでweak_refでラップして返すメソッドを提供するとかだろう
944デフォルトの名無しさん
2023/12/06(水) 13:44:37.37ID:uGBP6FLN 全銀のシステムこの規模で低レイヤーのメモリ操作しまくるのにC使ってるのマジで狂気としか思えないな
コードレベルのユニットテストもないのだろうし
絶対こういうこと起きるやん
コードレベルのユニットテストもないのだろうし
絶対こういうこと起きるやん
945デフォルトの名無しさん
2023/12/06(水) 13:55:39.00ID:6EzLMFr7 >>940
保守できなくなるから必ず避けるべき
保守できなくなるから必ず避けるべき
946デフォルトの名無しさん
2023/12/06(水) 14:04:56.53ID:3kI3ay52 >>945
プログラミング言語自体、ある程度の冗長性があるようにデザインされている
たからこそコンパイルエラーという現象が起こる
そもそもテストを書くという行為が重複した作業なのだけどやるだろ?
仕様変更したら書き直しなのは仕方ない
プログラミング言語自体、ある程度の冗長性があるようにデザインされている
たからこそコンパイルエラーという現象が起こる
そもそもテストを書くという行為が重複した作業なのだけどやるだろ?
仕様変更したら書き直しなのは仕方ない
947デフォルトの名無しさん
2023/12/06(水) 14:06:40.52ID:ts/cnrJA Cであることは関係なくね?
データ形式の共有に失敗すればどこでも起こりそう
記事だけだとよく分からんけどAAABBBをABABABって誤認した感じでしょ
データ形式の共有に失敗すればどこでも起こりそう
記事だけだとよく分からんけどAAABBBをABABABって誤認した感じでしょ
948デフォルトの名無しさん
2023/12/06(水) 14:10:35.44ID:4S+GIU/C ABAP
949デフォルトの名無しさん
2023/12/06(水) 14:11:26.67ID:6EzLMFr7 >>946
>プログラミング言語自体、ある程度の冗長性があるようにデザインされている
それは妥協の産物で悪だよ
>たからこそコンパイルエラーという現象が起こる
冗長性がない言語があったとしてコンパイルエラーは起こるし意味がある
>そもそもテストを書くという行為が重複した作業なのだけどやるだろ?
>仕様変更したら書き直しなのは仕方ない
最初に型名が正しいと確認されたら型推論に任せるべきです
>プログラミング言語自体、ある程度の冗長性があるようにデザインされている
それは妥協の産物で悪だよ
>たからこそコンパイルエラーという現象が起こる
冗長性がない言語があったとしてコンパイルエラーは起こるし意味がある
>そもそもテストを書くという行為が重複した作業なのだけどやるだろ?
>仕様変更したら書き直しなのは仕方ない
最初に型名が正しいと確認されたら型推論に任せるべきです
950デフォルトの名無しさん
2023/12/06(水) 14:17:11.63ID:N0N71GtG >>947
どこを読んだらそうなるんだ?
どこを読んだらそうなるんだ?
951デフォルトの名無しさん
2023/12/06(水) 14:41:23.05ID:oM0gjrfW952デフォルトの名無しさん
2023/12/06(水) 14:44:32.97ID:uGBP6FLN953デフォルトの名無しさん
2023/12/06(水) 14:52:19.97ID:3kI3ay52954デフォルトの名無しさん
2023/12/06(水) 15:01:15.76ID:ts/cnrJA >>952
記事から全部理解できたならたぶん別の記事だと思う
記事から全部理解できたならたぶん別の記事だと思う
955デフォルトの名無しさん
2023/12/06(水) 15:07:10.91ID:N0N71GtG956デフォルトの名無しさん
2023/12/06(水) 15:12:14.26ID:6EzLMFr7957デフォルトの名無しさん
2023/12/06(水) 15:22:00.69ID:aoO2XCof 全銀のやつは記事に書いてることはわかるがめちゃくそ疑問だらけ
なんで生成時にサイズチェックしないのか
なんで生成されたテーブルをチェックしてないのか
なんで生成されたテーブル使った試験をしてないのか
一般企業でもなかなかお目にかかれないひどい内容だがそれを金融系のしかも全銀がやっちゃうってのが信じられないわ
なんで生成時にサイズチェックしないのか
なんで生成されたテーブルをチェックしてないのか
なんで生成されたテーブル使った試験をしてないのか
一般企業でもなかなかお目にかかれないひどい内容だがそれを金融系のしかも全銀がやっちゃうってのが信じられないわ
958デフォルトの名無しさん
2023/12/06(水) 15:26:41.21ID:MT5mgeUa >>944
同感
同感
959デフォルトの名無しさん
2023/12/06(水) 15:33:52.57ID:MT5mgeUa 型推論よりインテリセンスとか補完がうざい。
こっちの入力リズムに合わないとイラっと来ることある。
こっちの入力リズムに合わないとイラっと来ることある。
960デフォルトの名無しさん
2023/12/06(水) 16:16:19.10ID:oM0gjrfW >>957
同感
同感
961デフォルトの名無しさん
2023/12/06(水) 16:17:28.30ID:oM0gjrfW962デフォルトの名無しさん
2023/12/06(水) 18:22:40.40ID:SQhb0To1 Pimplが説明してるある本がないか立ち読みしたのだがあった
最近出たC++ソフトウェア設計という本にモロに書いてあった
こんな本いつの間に出てたんだ?
モロに俺がドヤ顔したパターンじゃねえか...
この本内容もめちゃくちゃ良いぞ
最近出たC++ソフトウェア設計という本にモロに書いてあった
こんな本いつの間に出てたんだ?
モロに俺がドヤ顔したパターンじゃねえか...
この本内容もめちゃくちゃ良いぞ
963デフォルトの名無しさん
2023/12/06(水) 18:31:32.46ID:6EzLMFr7 pimplってGoFになかったっけ?
964デフォルトの名無しさん
2023/12/06(水) 18:37:31.41ID:+XLnMsko ヘッダファイルの変更のせいで再コンパイルされるC++特有の問題に対処するのが主目的のpimplがなんでGoFにあると思ったんですか?
965デフォルトの名無しさん
2023/12/06(水) 18:54:10.35ID:MT5mgeUa >>962
pimpl、10年前の本「C++のためのAPIデザイン」(2012年)にも載ってるぞ。
pimpl、10年前の本「C++のためのAPIデザイン」(2012年)にも載ってるぞ。
966デフォルトの名無しさん
2023/12/06(水) 18:55:40.21ID:SQhb0To1 まあPimplの主張はコンパイルサイズを固定するとか
内部を隠蔽することが主目的っぽいね
この本ではImplにunique_ptrを使ってコピー時にmoveする実装になってる
内部を隠蔽することが主目的っぽいね
この本ではImplにunique_ptrを使ってコピー時にmoveする実装になってる
967デフォルトの名無しさん
2023/12/06(水) 19:05:32.22ID:ts/cnrJA 知ってると役に立つけどC++使う気が失せる技法のひとつだな
968デフォルトの名無しさん
2023/12/06(水) 19:09:45.42ID:+XLnMsko969デフォルトの名無しさん
2023/12/06(水) 19:24:48.89ID:lBgUAnRO970デフォルトの名無しさん
2023/12/06(水) 19:26:54.33ID:lBgUAnRO 確かに不毛過ぎる気はする
本質的じゃない部分ですげー頭使わなきゃならんし
面白い部分でもない
素直にrust使うべきだわ
本質的じゃない部分ですげー頭使わなきゃならんし
面白い部分でもない
素直にrust使うべきだわ
971デフォルトの名無しさん
2023/12/06(水) 19:48:07.27ID:Pw3WwC1e 銀行はやったこと無いけどSIerの下請けで
お役所のシステム移行の
仕事したときにライブラリ一つに数万個のテストケースが
用意されてあらゆる仕様適合をチェックしていたので
実装でアホなことしててもテストで叩き落とせばよいという
思想なのかも
お役所のシステム移行の
仕事したときにライブラリ一つに数万個のテストケースが
用意されてあらゆる仕様適合をチェックしていたので
実装でアホなことしててもテストで叩き落とせばよいという
思想なのかも
972デフォルトの名無しさん
2023/12/06(水) 20:02:44.32ID:Knh+cYx8 >>964
GoFのBridgeパターン
GoFのBridgeパターン
973デフォルトの名無しさん
2023/12/06(水) 20:16:14.69ID:3kI3ay52 ヘッダーに実装書きまくるのが今のクソc++だからpimplにしたところでというのはある
974デフォルトの名無しさん
2023/12/06(水) 20:37:00.46ID:MnzvwPfi 実装を書かざるを得なくなってヘッダーと呼ぶのが不適切になったから.hの拡張子がなくなった
975デフォルトの名無しさん
2023/12/06(水) 20:57:06.52ID:N0N71GtG Pimplの良い説明を見つけた
この中のstd::shared_ptrの場合が今議論されている項目のようだ
http://www17.plala.or.jp/KodamaDeveloped/LetsProgramming/details_pimpl_idiom.html
この中のstd::shared_ptrの場合が今議論されている項目のようだ
http://www17.plala.or.jp/KodamaDeveloped/LetsProgramming/details_pimpl_idiom.html
976デフォルトの名無しさん
2023/12/06(水) 22:01:15.11ID:rDPAp/5U IT大手がRustへ舵を切るわけだな
977デフォルトの名無しさん
2023/12/06(水) 22:38:24.64ID:UoD976YL pimplはScott MeyersのEffective Modern C++が詳しい(Effective C++にもある程度書いてある)
shared_ptrじゃなくunique_ptrを使えと書いてる
https://en.cppreference.com/w/cpp/language/pimpl
https://herbsutter.com/gotw/_100/
shared_ptrじゃなくunique_ptrを使えと書いてる
https://en.cppreference.com/w/cpp/language/pimpl
https://herbsutter.com/gotw/_100/
978デフォルトの名無しさん
2023/12/06(水) 22:38:53.88ID:UoD976YL >>972
構造が似てるだけで全然別のもの
構造が似てるだけで全然別のもの
979デフォルトの名無しさん
2023/12/07(木) 00:06:56.11ID:3PWWuEZS デザインパターンとは構造について述べたもの
pimplはBridgeパターンの一適用例
別のものではない
pimplはBridgeパターンの一適用例
別のものではない
980デフォルトの名無しさん
2023/12/07(木) 00:37:25.72ID:mM7hpDu4981デフォルトの名無しさん
2023/12/07(木) 00:41:10.07ID:katRzGi9 C++オブジェクト設計という本にはbridgeパターンの一種で継承や多態性が必要がない場合の単純な例としてPimplの説明があった
982デフォルトの名無しさん
2023/12/07(木) 00:52:49.01ID:3PWWuEZS983デフォルトの名無しさん
2023/12/07(木) 00:55:08.82ID:3PWWuEZS >>981
一見して分かりそうなもんだけどね
一見して分かりそうなもんだけどね
984デフォルトの名無しさん
2023/12/07(木) 01:04:03.35ID:Avn/NPEq C++の不完全型とJavaのインターフェースが同じに見える人には同じに見えるんだろう
985デフォルトの名無しさん
2023/12/07(木) 02:06:38.63ID:Sudvf4UZ >>980
そんなこと書いてねーぞ
そんなこと書いてねーぞ
986デフォルトの名無しさん
2023/12/07(木) 09:57:06.17ID:XOE4A360 RustでGUIのアプリがつくりたいです
987デフォルトの名無しさん
2023/12/07(木) 11:16:21.90ID:Gb/m/afO egui
988デフォルトの名無しさん
2023/12/07(木) 13:36:44.52ID:XOE4A360989デフォルトの名無しさん
2023/12/07(木) 23:09:48.18ID:wfAAUjY+ えぐい
990デフォルトの名無しさん
2023/12/08(金) 09:55:56.32ID:k3Bpg+TD 踏んどくか
991デフォルトの名無しさん
2023/12/08(金) 09:58:29.65ID:k3Bpg+TD 結局C++とRustってどっちが良いの? 9traits
https://mevius.5ch.net/test/read.cgi/tech/1701997063/
https://mevius.5ch.net/test/read.cgi/tech/1701997063/
992デフォルトの名無しさん
2023/12/08(金) 10:01:41.64ID:dTkbwwL5 unsafe {
次スレいらんわボケ
}
次スレいらんわボケ
}
993デフォルトの名無しさん
2023/12/08(金) 10:15:03.32ID:k3Bpg+TD ・めとくか
994デフォルトの名無しさん
2023/12/08(金) 10:27:55.85ID:gyEpWkla995デフォルトの名無しさん
2023/12/08(金) 10:38:32.80ID:DJ4GSkDO こんな短く書けるんだ!
996デフォルトの名無しさん
2023/12/08(金) 10:39:02.81ID:k3Bpg+TD RustはCとの相性は良いがC++との相性は最悪
997デフォルトの名無しさん
2023/12/08(金) 10:39:54.69ID:k3Bpg+TD どうしてもC++を捨てられない人は
RustよりNim使った方が救われる
RustよりNim使った方が救われる
998デフォルトの名無しさん
2023/12/08(金) 10:40:47.47ID:k3Bpg+TD >>994
このスレの腕自慢建ちなら一瞬で移植してくれるだろう
このスレの腕自慢建ちなら一瞬で移植してくれるだろう
999デフォルトの名無しさん
2023/12/08(金) 10:41:18.48ID:k3Bpg+TD 間違えた
x 建ち
o 達
x 建ち
o 達
1000デフォルトの名無しさん
2023/12/08(金) 10:41:47.84ID:k3Bpg+TD10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 40日 20時間 56分 48秒
新しいスレッドを立ててください。
life time: 40日 20時間 56分 48秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 日本「中国製品買うの辞めます。中国旅行辞めます。」 中国「あぁ、そう…」
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 「遺体、安倍、会いたい」👈逆から読んでみて [175344491]
- お前らの知能指数教えてや
