「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
前スレ: 結局C++とRustってどっちが良いの? 2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
探検
結局C++とRustってどっちが良いの? 3traits
■ このスレッドは過去ログ倉庫に格納されています
2023/05/04(木) 07:49:56.33ID:z+qB+AKQ
374デフォルトの名無しさん
2023/05/13(土) 18:08:15.66ID:Zeyov0xO なんかメチャクチャ書いたな
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
375デフォルトの名無しさん
2023/05/13(土) 19:38:25.85ID:rkpDrS5+376デフォルトの名無しさん
2023/05/13(土) 21:15:21.97ID:C/HTc2pJ >>371
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
377デフォルトの名無しさん
2023/05/13(土) 21:18:10.27ID:qbLWQV0Y378デフォルトの名無しさん
2023/05/13(土) 21:55:24.10ID:ps1U4+yC379デフォルトの名無しさん
2023/05/13(土) 22:14:54.43ID:ps1U4+yC Copy非実装型とBoxとどちらがunique_ptrに近いかと言えば大多数の人はBoxだと言うだろうな
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
380デフォルトの名無しさん
2023/05/13(土) 22:22:25.59ID:IGToM9iL >>376
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
381デフォルトの名無しさん
2023/05/13(土) 22:50:11.88ID:awcNL8zc Boxはボックス化つまりヒープに置くこと
C++で対応するのはnew
C++で対応するのはnew
382デフォルトの名無しさん
2023/05/13(土) 22:51:59.52ID:ps1U4+yC BoxもZero Sized Type(ZST)だとheapを伴わないよね
383デフォルトの名無しさん
2023/05/14(日) 02:32:01.76ID:WzlwealS >>377
Rustは凄いと言ってる奴は、自分はRust使ってないからな
Rustは凄いと言ってる奴は、自分はRust使ってないからな
384デフォルトの名無しさん
2023/05/14(日) 09:24:48.35ID:20ql+77K Javaが出てきたとき
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
385デフォルトの名無しさん
2023/05/14(日) 09:25:10.34ID:hi4Bq2pn >>383
使いどころがないからなw
使いどころがないからなw
386デフォルトの名無しさん
2023/05/14(日) 09:27:43.22ID:20ql+77K 自分で作るじゃなく他所で作られたものを自慢をするというね
こういう言語そうだそれ以外の物でもそうだし
こういう言語そうだそれ以外の物でもそうだし
387デフォルトの名無しさん
2023/05/14(日) 09:34:52.10ID:1jFVCpuN >>384
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
388デフォルトの名無しさん
2023/05/14(日) 10:27:30.61ID:pb1Dbmn7 javaはIT企業ではある意味他言語をを駆逐したと思うわ
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
389デフォルトの名無しさん
2023/05/14(日) 14:29:21.51ID:ePHWuoFt WindowsのカーネルもRustに移行するのか
390デフォルトの名無しさん
2023/05/14(日) 15:10:39.12ID:+xFqdUJk これでWindows、Linux、AndroidがRust採用かー
391デフォルトの名無しさん
2023/05/14(日) 19:44:19.16ID:JeiAQ+ra rubyは使ってると殴られる言語だが
pythonはまだ大丈夫だな
phpやvbは死んでいい
pythonはまだ大丈夫だな
phpやvbは死んでいい
392デフォルトの名無しさん
2023/05/14(日) 19:45:39.76ID:JeiAQ+ra393デフォルトの名無しさん
2023/05/14(日) 20:14:19.79ID:pJuPP/LG394デフォルトの名無しさん
2023/05/14(日) 20:36:25.87ID:QmAlZPFj 🐟::🐟::🐟::
395デフォルトの名無しさん
2023/05/14(日) 20:47:29.76ID:aUfiFIOV ::も<type>もC++と同じだから連続してもそれほど違和感ない
396デフォルトの名無しさん
2023/05/14(日) 20:57:09.57ID:pb1Dbmn7 goの配列の指定はいまだに慣れないと言うかなんじゃこれだけど
rustは&mutとかライフタイムの指定をもっと独自のものにして欲しかった
rustは&mutとかライフタイムの指定をもっと独自のものにして欲しかった
397デフォルトの名無しさん
2023/05/14(日) 20:59:37.48ID:oUsSKvxr C++構文定義上の最大の罪である山括弧ジェネリクスを引き継いでしまい
構文の曖昧性を無くすために苦肉の策で生まれたのがあの悲しきお魚ちゃんなのですよ
構文の曖昧性を無くすために苦肉の策で生まれたのがあの悲しきお魚ちゃんなのですよ
398デフォルトの名無しさん
2023/05/14(日) 21:00:38.00ID:QE+keqW6 >>392
関数型はマイナーだからな
関数型はマイナーだからな
399デフォルトの名無しさん
2023/05/14(日) 21:02:12.13ID:QE+keqW6400デフォルトの名無しさん
2023/05/14(日) 21:06:28.92ID:pb1Dbmn7 < >は解釈の時若干邪魔なのかとは思うけど
ヒマだからANTLRで構文解析器でも作ってみようか
ヒマだからANTLRで構文解析器でも作ってみようか
401デフォルトの名無しさん
2023/05/14(日) 21:08:03.75ID:pb1Dbmn7 cはtypedefとかの仕組みがクソ
402デフォルトの名無しさん
2023/05/14(日) 21:30:13.88ID:QE+keqW6 >>401
typedefかっけーやん
#include <iostream>
using namespace std;
struct Hoge {
void hage () const {cout << "hage" << '\n';}
};
int main () {
typedef void (Hoge::*Mage) () const;
Hoge hoge;
Mage mage {&Hoge::hage};
(hoge.*mage) ();
return 0;
}
typedefかっけーやん
#include <iostream>
using namespace std;
struct Hoge {
void hage () const {cout << "hage" << '\n';}
};
int main () {
typedef void (Hoge::*Mage) () const;
Hoge hoge;
Mage mage {&Hoge::hage};
(hoge.*mage) ();
return 0;
}
403デフォルトの名無しさん
2023/05/14(日) 22:05:58.43ID:RldwXebz 何かの言語でvector<vector<int>>の">>"の間にスペースが必要だった記憶があるけど
昔のC++だったかJavaだったか思い出せない
シフト演算子と相性悪いんだよね
どうやって解決したんだろ
昔のC++だったかJavaだったか思い出せない
シフト演算子と相性悪いんだよね
どうやって解決したんだろ
404デフォルトの名無しさん
2023/05/14(日) 22:07:54.16ID:QE+keqW6 >>403
昔のC++はそうだったよ
昔のC++はそうだったよ
405デフォルトの名無しさん
2023/05/14(日) 22:57:53.83ID:bfYFgiq9 次スレのスレタイはC++ Considered Harmfulにしよう
406デフォルトの名無しさん
2023/05/14(日) 23:23:04.77ID:pb1Dbmn7 >>402
頭が痛くなるからやめて
頭が痛くなるからやめて
407デフォルトの名無しさん
2023/05/14(日) 23:23:32.31ID:QE+keqW6 >>402をtypedefなしで書くと逝っとるよな
- Mage mage {&Hoge::hage};
+ void (Hoge::*mage) () const {&Hoge::hage};
何でこんな記法にしたんだろ?
- Mage mage {&Hoge::hage};
+ void (Hoge::*mage) () const {&Hoge::hage};
何でこんな記法にしたんだろ?
408デフォルトの名無しさん
2023/05/14(日) 23:26:10.97ID:pb1Dbmn7 作った人たちも失敗したと言ってるからな
409デフォルトの名無しさん
2023/05/14(日) 23:29:27.12ID:bfYFgiq9 変数宣言と構文を共有することでパーサの実装量節約に一役買っているのです
410デフォルトの名無しさん
2023/05/14(日) 23:34:59.36ID:QE+keqW6 俺は使える程には理解してるが人にはちょっと説明できん
411デフォルトの名無しさん
2023/05/14(日) 23:35:38.40ID:QE+keqW6 >>408
誰?
誰?
412デフォルトの名無しさん
2023/05/15(月) 00:00:45.30ID:wsaXJZjZ >>411
しばらく検索してみたけどソースが見当たらないので取り消します
しばらく検索してみたけどソースが見当たらないので取り消します
413デフォルトの名無しさん
2023/05/15(月) 00:06:48.33ID:I+wFjT19 >>412
お時間使わせてスミマセン
お時間使わせてスミマセン
414デフォルトの名無しさん
2023/05/15(月) 09:27:18.72ID:wFuQ/qib C/C++ は(関数ポインタのときを除いて)
hoge と &hoge と &&hoge と &&...&hoge は明確に区別されるけど
Rust だと区別されずにコンパイル通ってしまうケースもあるんだな
むしろ警告でも良いので出してくれればいいのに
hoge と &hoge と &&hoge と &&...&hoge は明確に区別されるけど
Rust だと区別されずにコンパイル通ってしまうケースもあるんだな
むしろ警告でも良いので出してくれればいいのに
415デフォルトの名無しさん
2023/05/15(月) 09:33:17.96ID:wFuQ/qib416デフォルトの名無しさん
2023/05/15(月) 09:37:02.63ID:wFuQ/qib >>411
ハゲ麦紐じゃなかった?
ハゲ麦紐じゃなかった?
417デフォルトの名無しさん
2023/05/15(月) 09:38:10.71ID:DhZrO8d7418デフォルトの名無しさん
2023/05/15(月) 11:36:55.02ID:ujHFmMNa >>414
Rustでも区別されてるけど場所によってはDeref Coercionが働くから
区別されてないように見えるというだけ
https://doc.rust-lang.org/book/ch15-02-deref.html
Rustでも区別されてるけど場所によってはDeref Coercionが働くから
区別されてないように見えるというだけ
https://doc.rust-lang.org/book/ch15-02-deref.html
419デフォルトの名無しさん
2023/05/15(月) 12:27:59.24ID:GXc9JAaS420デフォルトの名無しさん
2023/05/15(月) 12:36:46.16ID:HovYgrQ4 じゃあジェネリクスの記号を何にすればよかったのかの話は無いよね。
代替案が無いなら貶さない方がいいよ
代替案が無いなら貶さない方がいいよ
421デフォルトの名無しさん
2023/05/15(月) 12:58:13.92ID:s5edYhaR Box[T]
Box t
't box
(box t)
Box t
't box
(box t)
422デフォルトの名無しさん
2023/05/15(月) 13:30:47.16ID:s5edYhaR 今さら代替案を出したってもう広まってるから無理だし、本気でこれを変えて「改善」になるなんて思ってる人はいないだろうが
C++の山かっこがC++11で改善されるまで長いことクソクソ言われてたのになぜRustは……ってだけのただの冗談だよ
本気にさせちゃったようですまないね
C++の山かっこがC++11で改善されるまで長いことクソクソ言われてたのになぜRustは……ってだけのただの冗談だよ
本気にさせちゃったようですまないね
423デフォルトの名無しさん
2023/05/15(月) 13:45:50.28ID:I+wFjT19 Rustのジェネリックスの記法はこうこうこうだから美しい!マンセー!
って言わなきゃ話が続かないよ
って言わなきゃ話が続かないよ
424デフォルトの名無しさん
2023/05/15(月) 13:49:25.75ID:s5edYhaR http://www.kmonos.net/alang/d/templates-revisited.html
クソクソ言われていた時代にRustと似た動機で作られたD言語はBox!(T)だったんだね
みんないろいろ考えるんだね〜
クソクソ言われていた時代にRustと似た動機で作られたD言語はBox!(T)だったんだね
みんないろいろ考えるんだね〜
425デフォルトの名無しさん
2023/05/15(月) 14:23:03.39ID:1m/NLizK > C++構文定義上の最大の罪である山括弧ジェネリクス
> C++の山かっこがC++11で改善されるまで長いことクソクソ言われてた
完全にコイツはエアプ
当時そんなとこに文句言ってるやつ見たこと無い
みんな真顔で「> >」隙間開けてたわ
指がオートマチックでスペース叩いてるはず
仕事やってりゃ色々クソなことはあるが
それを言語に転嫁するようなザコはここにはいないよね?
> C++の山かっこがC++11で改善されるまで長いことクソクソ言われてた
完全にコイツはエアプ
当時そんなとこに文句言ってるやつ見たこと無い
みんな真顔で「> >」隙間開けてたわ
指がオートマチックでスペース叩いてるはず
仕事やってりゃ色々クソなことはあるが
それを言語に転嫁するようなザコはここにはいないよね?
426デフォルトの名無しさん
2023/05/15(月) 14:37:29.92ID:8jCFowEK C++11までそんなので頑張ってたんだねw
427デフォルトの名無しさん
2023/05/15(月) 14:44:13.08ID:HovYgrQ4 「もう広まってる」とは言うがRustがわざわざ山かっこ<>をジェネリクス用に選んだ経緯とかはあるのか?
本当に惰性と流れで<>にしたの?
Dみたくa!(b,c)にしなかったのはなんでだ?
やっぱりDのa!(b,c)なる記法は純粋に見映えがダサくて、C++的なa<b,c>なやつはなぜかイケてる、ていうだけのことだろ
本当に惰性と流れで<>にしたの?
Dみたくa!(b,c)にしなかったのはなんでだ?
やっぱりDのa!(b,c)なる記法は純粋に見映えがダサくて、C++的なa<b,c>なやつはなぜかイケてる、ていうだけのことだろ
428デフォルトの名無しさん
2023/05/15(月) 15:00:31.60ID:5sS8eRrw ()が増えるのは良くない
429デフォルトの名無しさん
2023/05/15(月) 15:09:20.65ID:s5edYhaR430デフォルトの名無しさん
2023/05/15(月) 15:11:35.81ID:ujHFmMNa https://soc.me/languages/stop-using-angle-brackets-for-generics.html
ここに書いてあることも一理あるけど
Goのようにsquare bracketでのインデックスアクセスを残したままFoo[T]にするのも微妙
unlimited look-aheadが必要だとしても実際にそんな長く先まで読む必要性なんてないので
読みやすさが勝るのならそれでいいと思う
ターボフィッシュはイケてないけど
ここに書いてあることも一理あるけど
Goのようにsquare bracketでのインデックスアクセスを残したままFoo[T]にするのも微妙
unlimited look-aheadが必要だとしても実際にそんな長く先まで読む必要性なんてないので
読みやすさが勝るのならそれでいいと思う
ターボフィッシュはイケてないけど
431デフォルトの名無しさん
2023/05/15(月) 15:21:53.58ID:gbsleJgn >>425
C++がだらしないから、こんだけRust勢に煽られてる、っては思ってるけどね
あまりに煽られて、一行もRust書いてないのに、併用する心の準備ができつつある
でもぜってえC++は捨てねえ、ぜってえにだwww > 煽り勢
C++がだらしないから、こんだけRust勢に煽られてる、っては思ってるけどね
あまりに煽られて、一行もRust書いてないのに、併用する心の準備ができつつある
でもぜってえC++は捨てねえ、ぜってえにだwww > 煽り勢
432デフォルトの名無しさん
2023/05/15(月) 15:44:34.72ID:YPCsGXtE 言語そのものを作ってるような人じゃなければ
あまり特定の言語に固執しないほうがいいよ
RustだろうがC++だろうがレゾンデートルに特定の言語を組み入れてる人は成長が止まりやすく老害化しやすいので自分が損するだけだから
所詮は使い分ける道具の一つ
あまり特定の言語に固執しないほうがいいよ
RustだろうがC++だろうがレゾンデートルに特定の言語を組み入れてる人は成長が止まりやすく老害化しやすいので自分が損するだけだから
所詮は使い分ける道具の一つ
433デフォルトの名無しさん
2023/05/15(月) 18:44:18.46ID:FgOHTeF5 プログラミング言語をただの道具と言うやつは大抵無能
434デフォルトの名無しさん
2023/05/15(月) 18:58:00.82ID:VaeCf5Jf435デフォルトの名無しさん
2023/05/15(月) 19:22:58.71ID:W6wSx7Ot 何か作るときに道具に拘る気持ちはめっちゃわかるけどなあ
436デフォルトの名無しさん
2023/05/15(月) 19:25:10.97ID:FgOHTeF5 道具によって成果物の品質が変わるのだからこだわるのは当たり前
ただの道具とか言うやつは安定してゴミを作るからそういう感覚がないのよ
ただの道具とか言うやつは安定してゴミを作るからそういう感覚がないのよ
437デフォルトの名無しさん
2023/05/15(月) 19:32:41.90ID:wsaXJZjZ ここからは理論無用でレスできるのでスレが進むのか?
438デフォルトの名無しさん
2023/05/15(月) 19:32:43.22ID:Zmr9JaW+ 作るものが複雑になると、普段から使ってよく理解している言語でないと
調べ物が多くなって効率が悪い。
調べ物が多くなって効率が悪い。
439デフォルトの名無しさん
2023/05/15(月) 19:34:27.68ID:fkhy8mxo 問題領域の濃度と文法の濃度を考えれば、全ての用途で便利に使える万能言語なんてありえない。
言語には必ず得意領域と不得意領域があるんだから、問題領域に合わせて言語を選択・作成するのが望ましい。
言語には必ず得意領域と不得意領域があるんだから、問題領域に合わせて言語を選択・作成するのが望ましい。
440デフォルトの名無しさん
2023/05/15(月) 19:38:48.81ID:s5edYhaR If all you have is a hammer, everything looks like a nail.
>>437
宗教上の理由でワッチョイスレに書けない人が荒れることを無限に書き込むから
>>437
宗教上の理由でワッチョイスレに書けない人が荒れることを無限に書き込むから
441デフォルトの名無しさん
2023/05/15(月) 19:42:25.96ID:LmW7vJqn ちょっとしたスクリプトを書く程度で済むケースは、シェルスクリプトやスクリプト言語を使えば済むから対象外として、
がっちりプログラミングするならば、実行速度やメモリ使用量などのリソース、可読性や保守性を含めた開発効率などで、プログラミング言語を選びたい。
慣れれば大した手間増加にならないのだから、CPUメモリリソースや時間を考えると、C++とRustが選ばれるべきシーンは多そう。
C++とRustが忌避される理由は他言語より「難しい」「面倒」だけど、慣れてしまえば他の言語と大した違いはないわけだから。
がっちりプログラミングするならば、実行速度やメモリ使用量などのリソース、可読性や保守性を含めた開発効率などで、プログラミング言語を選びたい。
慣れれば大した手間増加にならないのだから、CPUメモリリソースや時間を考えると、C++とRustが選ばれるべきシーンは多そう。
C++とRustが忌避される理由は他言語より「難しい」「面倒」だけど、慣れてしまえば他の言語と大した違いはないわけだから。
442デフォルトの名無しさん
2023/05/15(月) 19:47:06.01ID:wsaXJZjZ 目玉焼きに醤油を掛けるのかソースを掛けるのかマヨネーズ掛けるのか塩を掛けるのか
ぐらいのレベルがこの後30レスぐらい続くのかなあ?
ぐらいのレベルがこの後30レスぐらい続くのかなあ?
443デフォルトの名無しさん
2023/05/15(月) 20:18:45.40ID:Kl4uDN3z 塩だろ。俺は邪道のアジシオだな
どんなターゲットにも合う。最悪、スイカにすら合う。
Cもそんな感じ。
どんなターゲットにも合う。最悪、スイカにすら合う。
Cもそんな感じ。
444デフォルトの名無しさん
2023/05/15(月) 20:36:08.15ID:sS887eTb445デフォルトの名無しさん
2023/05/15(月) 21:11:38.66ID:FgOHTeF5 マンパワー依存の無能はさすがに苦笑
エンジニア向いてないよ笑
エンジニア向いてないよ笑
446デフォルトの名無しさん
2023/05/15(月) 22:00:39.87ID:Kl4uDN3z まあC++にもunsafe{ } は来てほしいけどね
統一的な方法がなかったので、今後Rustのやりかたが他言語にも波及するっしょ
統一的な方法がなかったので、今後Rustのやりかたが他言語にも波及するっしょ
447デフォルトの名無しさん
2023/05/16(火) 03:39:12.30ID:mxMgusoo >>446
global deleteを無くすのと、参照渡しのライフタイム保証があればいいよ。
global deleteを無くすのと、参照渡しのライフタイム保証があればいいよ。
448デフォルトの名無しさん
2023/05/16(火) 04:35:10.15ID:4S8kS8o+ 何か未知で不確実だとしてもただの道具ならその目的は既知だったりするでしょ
デストラクタの後で参照しないとか
デストラクタの後でデストラクタを呼ばないとか
だがメモリリークをあまり問題視しない件などは目的自体が変化してしまうから
ただの道具ではない
デストラクタの後で参照しないとか
デストラクタの後でデストラクタを呼ばないとか
だがメモリリークをあまり問題視しない件などは目的自体が変化してしまうから
ただの道具ではない
449デフォルトの名無しさん
2023/05/16(火) 05:49:36.67ID:LhFniP55 >>447
Rust勢が言っているのは、Rustで書いたものは安全といって納品できる、ということなので、
ガイドライン チェッカとかじゃなく、言語にちゃんとunsafe{ } があるというのはモダン
何をもってsafeとするかには議論があったが、Rustがデファクトスタンダードになるなら、それを取り込めばいい
ひとつの夜明けは近い
Rust勢が言っているのは、Rustで書いたものは安全といって納品できる、ということなので、
ガイドライン チェッカとかじゃなく、言語にちゃんとunsafe{ } があるというのはモダン
何をもってsafeとするかには議論があったが、Rustがデファクトスタンダードになるなら、それを取り込めばいい
ひとつの夜明けは近い
450デフォルトの名無しさん
2023/05/16(火) 10:02:16.98ID:dncY24o+ >成長が止まりやすく老害化しやすい
道具云々は↑これが図星で悔しかったんだろ
その後のレス見れば成長止まって老害化してる人だとよくわかる
道具云々は↑これが図星で悔しかったんだろ
その後のレス見れば成長止まって老害化してる人だとよくわかる
451デフォルトの名無しさん
2023/05/16(火) 10:57:49.38ID:4S8kS8o+ 当たり前だけど、攻撃力がレーゾンデートルになるよりは回避力か防御力のほうが
ダメージやストレスが少ない
ダメージやストレスが少ない
452デフォルトの名無しさん
2023/05/16(火) 11:13:49.28ID:afLAkRaY レーゾンデートルwww
453デフォルトの名無しさん
2023/05/16(火) 12:35:37.97ID:ALDBkD8o454デフォルトの名無しさん
2023/05/16(火) 13:33:35.88ID:d+qszQ7T インテリだなぁwおい
455デフォルトの名無しさん
2023/05/16(火) 13:41:37.03ID:spgQVWRA >>453
値を変更する時にそれが他から参照されてるかはRust以外でも多少は意識してるはずだし
変更可能な状態で共有することに意味があるならRefCellとかCellに入れて共有すればいい
面倒といっても安全のための規約レベルでしょ
(違反するとコンパイラに殴られるからある意味手間が省ける)
値を変更する時にそれが他から参照されてるかはRust以外でも多少は意識してるはずだし
変更可能な状態で共有することに意味があるならRefCellとかCellに入れて共有すればいい
面倒といっても安全のための規約レベルでしょ
(違反するとコンパイラに殴られるからある意味手間が省ける)
456デフォルトの名無しさん
2023/05/16(火) 15:40:22.92ID:HCiu7CXC >>453
正確にはshared NAND mutable
正確にはshared NAND mutable
457デフォルトの名無しさん
2023/05/16(火) 18:00:25.19ID:4S8kS8o+ 所有と参照を区別しない場合は
参照が一つもない値の存在は許されない (循環参照が許されないとは言ってない) ので
むしろxorが正確である場合もあるかも
参照が一つもない値の存在は許されない (循環参照が許されないとは言ってない) ので
むしろxorが正確である場合もあるかも
458デフォルトの名無しさん
2023/05/16(火) 22:00:57.33ID:LSAD/UZx459デフォルトの名無しさん
2023/05/16(火) 23:06:18.96ID:4S8kS8o+ ああ、C++では値と参照を区別するとかしないとか言うね
でも動詞を使いたくなったら「参照する」は正しいが「値する」はおかしい
だから値を所有する、値を参照するというのが良い
でも動詞を使いたくなったら「参照する」は正しいが「値する」はおかしい
だから値を所有する、値を参照するというのが良い
460デフォルトの名無しさん
2023/05/17(水) 06:30:13.75ID:u+07gdJ+ C/C++の値に所有なんてあるのか
参照なら実体側の所有が誰か問題になるかも知れんが
参照なら実体側の所有が誰か問題になるかも知れんが
461デフォルトの名無しさん
2023/05/17(水) 11:15:53.89ID:qIPYqCzM462デフォルトの名無しさん
2023/05/17(水) 12:05:12.66ID:jyReDlhf C++の参照がダングリングを引き起こす根本的原因は、
値の所有とその生存期間を参照に対してはっきりさせていないため?
値の所有とその生存期間を参照に対してはっきりさせていないため?
463デフォルトの名無しさん
2023/05/17(水) 12:13:29.10ID:BpkuThno use Hoge; と
extern crate Hoge; の違いが判ったわ
新しいとか古いとか言ってる人が以前居たけど嘘だったω
extern crate Hoge; の違いが判ったわ
新しいとか古いとか言ってる人が以前居たけど嘘だったω
464デフォルトの名無しさん
2023/05/17(水) 12:13:39.98ID:F24a8wLt 待て待て
そもそもC++でダングリングを起こしたことがない
Rustは言語仕様上関数でヒープまで消しちゃうから
仕組みがないとダングリングを起こしやすい
ダングリングはRust固有の持病
そもそもC++でダングリングを起こしたことがない
Rustは言語仕様上関数でヒープまで消しちゃうから
仕組みがないとダングリングを起こしやすい
ダングリングはRust固有の持病
465デフォルトの名無しさん
2023/05/17(水) 12:57:26.72ID:gejLyGRv466デフォルトの名無しさん
2023/05/17(水) 13:13:25.46ID:BC7Hht5L >>464
関数でヒープを自動解放する仕組みすなわち自動的にデストラクタが呼ばれる仕組みはC++とRustで同じ
関数でヒープを自動解放する仕組みすなわち自動的にデストラクタが呼ばれる仕組みはC++とRustで同じ
467デフォルトの名無しさん
2023/05/17(水) 13:36:00.32ID:bmOF/eVQ デバッグビルドでよければ、結構重厚にチェックしてくれるんだけどね
リリースビルドでも一定程度チェックが残ってくれるようになれば、まだましになるか
リリースビルドでも一定程度チェックが残ってくれるようになれば、まだましになるか
468デフォルトの名無しさん
2023/05/17(水) 13:56:37.30ID:ICP0Cmin >>462
C++でも値に対する所有とライフタイムを明確にして参照のライフタイムがそれ以内に収まる枠組みにすればダングリングを防げるようになる
C++でも値に対する所有とライフタイムを明確にして参照のライフタイムがそれ以内に収まる枠組みにすればダングリングを防げるようになる
469デフォルトの名無しさん
2023/05/17(水) 16:33:36.81ID:vdNzRO2S それスマートポインタでええやん
470デフォルトの名無しさん
2023/05/17(水) 16:47:08.88ID:xh2FOm6Y Rustの知名度の上昇は、WasmのWASIのサンプルがCではなくRustで書かれている
ことにも起因するらしい。だから、Wasmで検索するとRustが出てきてしまう。
しかし、このことは、WASIの普及の足を引っ張るかも知れない。
なぜなら、C言語が基本だから。
ことにも起因するらしい。だから、Wasmで検索するとRustが出てきてしまう。
しかし、このことは、WASIの普及の足を引っ張るかも知れない。
なぜなら、C言語が基本だから。
471デフォルトの名無しさん
2023/05/17(水) 16:58:32.53ID:v5yVc+NM472デフォルトの名無しさん
2023/05/17(水) 18:52:30.65ID:ZQB5ONnn なぜなら、の後が願望100%やん
473デフォルトの名無しさん
2023/05/17(水) 20:08:10.12ID:Yuvp7VZi 願望だから嘘だとか万能だから嘘だとかいう雑な説明は蛇足だな
説明しない自由があるべき
嘘でもいいから何か説明した方がマシというのは大嘘だ
説明しない自由があるべき
嘘でもいいから何か説明した方がマシというのは大嘘だ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【悲報】ゼレンスキー「高市早苗は生命を守り、国際的なルールに基づく秩序を擁護し、国家間の相互尊重を促している」 [616817505]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 青椒肉絲、牛肉ではなく豚肉を使うのが本物だった
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
