「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
342デフォルトの名無しさん
2023/05/12(金) 14:19:03.50ID:jNwvrlvi 解散
343デフォルトの名無しさん
2023/05/12(金) 14:25:26.74ID:uf2dKGIg カーネルのどのへんで使われてるんだろう
Linuxみたいに周辺部分からかな
Linuxみたいに周辺部分からかな
344デフォルトの名無しさん
2023/05/12(金) 14:32:56.45ID:yiIZVwAo >>341
Rustの成果をC/C++に還流させるフェーズ どんどんやってくれ
Rustの成果をC/C++に還流させるフェーズ どんどんやってくれ
345デフォルトの名無しさん
2023/05/12(金) 14:44:13.86ID:GoY4o9UG Microsoft Azure security evolution: Embrace secure multitenancy, Confidential Compute, and Rust
https://azure.microsoft.com/en-us/blog/microsoft-azure-security-evolution-embrace-secure-multitenancy-confidential-compute-and-rust/
Rust as the path forward over C/C++
Decades of vulnerabilities have proven how difficult it is to prevent memory-corrupting bugs when using C/C++. While garbage-collected languages like C# or Java have proven more resilient to these issues, there are scenarios where they cannot be used. For such cases, we’re betting on Rust as the alternative to C/C++. Rust is a modern language designed to compete with the performance C/C++, but with memory safety and thread safety guarantees built into the language. While we are not able to rewrite everything in Rust overnight, we’ve already adopted Rust in some of the most critical components of Azure’s infrastructure. We expect our adoption of Rust to expand substantially over time.
https://azure.microsoft.com/en-us/blog/microsoft-azure-security-evolution-embrace-secure-multitenancy-confidential-compute-and-rust/
Rust as the path forward over C/C++
Decades of vulnerabilities have proven how difficult it is to prevent memory-corrupting bugs when using C/C++. While garbage-collected languages like C# or Java have proven more resilient to these issues, there are scenarios where they cannot be used. For such cases, we’re betting on Rust as the alternative to C/C++. Rust is a modern language designed to compete with the performance C/C++, but with memory safety and thread safety guarantees built into the language. While we are not able to rewrite everything in Rust overnight, we’ve already adopted Rust in some of the most critical components of Azure’s infrastructure. We expect our adoption of Rust to expand substantially over time.
346デフォルトの名無しさん
2023/05/12(金) 14:45:57.07ID:QUxSeMfx マイクロソフト、Rust言語による開発を含む初めてのWindowsカーネルをInsiderプログラム参加者向けに提供開始
https://www.publickey1.jp/blog/23/_rustwindowsinsider.html
デバドラからか
https://www.publickey1.jp/blog/23/_rustwindowsinsider.html
デバドラからか
347デフォルトの名無しさん
2023/05/12(金) 15:41:33.52ID:66ak38wv348デフォルトの名無しさん
2023/05/12(金) 16:02:52.10ID:TaYVXf5t むかしもこんな感じでJ++に騙されたんだよ
349デフォルトの名無しさん
2023/05/12(金) 16:05:02.84ID:vtQb4m8q コンパイラは何使っているんだろうね?
MSがllvmなんかつかうのかな?
MSがllvmなんかつかうのかな?
350デフォルトの名無しさん
2023/05/12(金) 16:11:29.41ID:GsK+e8JY Visual Rust++登場も近いな
351デフォルトの名無しさん
2023/05/12(金) 16:19:18.80ID:MfrxynDP 新しいGC言語がどれだけ出て来ても
C++の天下は揺らがない
もしC++が転落するときが来るとすれば
C++の欠点を解決しつつ同等の性能を出せる新たな非GC言語が登場した時だけだ
C++の天下は揺らがない
もしC++が転落するときが来るとすれば
C++の欠点を解決しつつ同等の性能を出せる新たな非GC言語が登場した時だけだ
352デフォルトの名無しさん
2023/05/12(金) 17:14:53.42ID:0Z+hsanL trait 内の fn は pub 付けていなくても
trait 自体が pub で定義されていたら
他の trait (というか上の trait を引き継いでいる) からでも参照出来るんだね
trait 自体が pub で定義されていたら
他の trait (というか上の trait を引き継いでいる) からでも参照出来るんだね
353デフォルトの名無しさん
2023/05/12(金) 17:16:09.03ID:0Z+hsanL Visual R++
Visual R#
しっくりこない
Visual R#
しっくりこない
354デフォルトの名無しさん
2023/05/12(金) 17:47:30.22ID:UYEx77Kz R言語はもう別であるからRustがR++になる心配はない
355デフォルトの名無しさん
2023/05/12(金) 17:50:51.87ID:BjQIXqEx Visual &mut Rust
356デフォルトの名無しさん
2023/05/12(金) 17:54:33.84ID:qfqUshnI トリビア: トレイトメソッドに付くVisibilityは構文定義上だけは許されている
357デフォルトの名無しさん
2023/05/12(金) 18:18:31.38ID:0Z+hsanL トレイト完全に理解した!
ヒャッハーっ!!!
ヒャッハーっ!!!
358デフォルトの名無しさん
2023/05/12(金) 18:29:46.57ID:LzgSZzp6 https://doc.rust-lang.org/reference/items/traits.html#item-visibility
Trait items syntactically allow a Visibility annotation,
but this is rejected when the trait is validated.
Trait items syntactically allow a Visibility annotation,
but this is rejected when the trait is validated.
359デフォルトの名無しさん
2023/05/12(金) 20:36:17.87ID:qfqUshnI またひどい知ったかぶりしてる……
https://medaka.5ch.net/test/read.cgi/prog/1619943288/575
575 仕様書無しさん 2023/05/12(金) 15:53:45.02
C++のスマートポインタはRustで吸収され
・RustのCopy実装型 (使われる時は自動コピー)
・RustのCopy非実装型 (使われる時はムーブ) ← C++のunique_ptr
・RustのArc型 (atomic増減でスレッド間も利用可) ← C++のshared_ptr
・RustのRc型 (高速にスレッド内で利用可)
つまりunique_ptrの機能がRustでは標準で備わっている
さらにshared_ptrはArcでその軽量版Rcが追加
C++と異なり使い間違えるとコンパイルエラーで知らせてくれる
さらにRustは参照と可変参照の規則によりデータ競合をコンパイル時に防ぐ
https://medaka.5ch.net/test/read.cgi/prog/1619943288/575
575 仕様書無しさん 2023/05/12(金) 15:53:45.02
C++のスマートポインタはRustで吸収され
・RustのCopy実装型 (使われる時は自動コピー)
・RustのCopy非実装型 (使われる時はムーブ) ← C++のunique_ptr
・RustのArc型 (atomic増減でスレッド間も利用可) ← C++のshared_ptr
・RustのRc型 (高速にスレッド内で利用可)
つまりunique_ptrの機能がRustでは標準で備わっている
さらにshared_ptrはArcでその軽量版Rcが追加
C++と異なり使い間違えるとコンパイルエラーで知らせてくれる
さらにRustは参照と可変参照の規則によりデータ競合をコンパイル時に防ぐ
360デフォルトの名無しさん
2023/05/12(金) 22:56:44.22ID:LzgSZzp6 問題なし
361デフォルトの名無しさん
2023/05/12(金) 23:46:30.09ID:qfqUshnI unique_ptrに対応するのはBoxやろがい
362デフォルトの名無しさん
2023/05/13(土) 02:08:25.96ID:IwTcnmrR >>361
C++のunique_ptrとRustのBoxは対応しない
Boxはヒープ確保であり例えば以下でのnew int(123)部分にあたる
std::unique_ptr<int> foo(new int(123));
そしてunique_ptr自体にヒープ確保の機能はない
C++のunique_ptrとRustのBoxは対応しない
Boxはヒープ確保であり例えば以下でのnew int(123)部分にあたる
std::unique_ptr<int> foo(new int(123));
そしてunique_ptr自体にヒープ確保の機能はない
363デフォルトの名無しさん
2023/05/13(土) 04:06:17.18ID:rghdYpRz >>351
それがrustだろ
それがrustだろ
364デフォルトの名無しさん
2023/05/13(土) 07:59:34.64ID:Mq7eAK7K 天下ねえ
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
365デフォルトの名無しさん
2023/05/13(土) 10:20:28.21ID:rDLT/gzF 何故プログラミング言語が変わるのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
366デフォルトの名無しさん
2023/05/13(土) 10:27:54.96ID:R1hDb7+8 >>365
Rustは③だよね?
Rustは③だよね?
367デフォルトの名無しさん
2023/05/13(土) 11:14:30.77ID:qbLWQV0Y たった今あるソリューションがRustだから、切迫した更新需要にはRustが入ると思う
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
368デフォルトの名無しさん
2023/05/13(土) 12:46:24.99ID:TFo/sDKR C++は倒れたままなのか?
死亡フラグ
死亡フラグ
369デフォルトの名無しさん
2023/05/13(土) 12:48:52.48ID:OKlDpUB8 倒れたと言いますと?
370デフォルトの名無しさん
2023/05/13(土) 13:37:03.03ID:0/cn7SoC >>365
頭悪過ぎ
頭悪過ぎ
371デフォルトの名無しさん
2023/05/13(土) 13:52:20.03ID:IGToM9iL >>362
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
372371
2023/05/13(土) 13:54:01.76ID:IGToM9iL あ、ムーブされるときは違うなすまん
373デフォルトの名無しさん
2023/05/13(土) 18:07:44.55ID:1P8OgH65 lifetime の &'static と
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
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が忌避される理由は他言語より「難しい」「面倒」だけど、慣れてしまえば他の言語と大した違いはないわけだから。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか… [BFU★]
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国国営メディア「沖縄は日本ではない」…★7 [BFU★]
- バービー、 台湾有事の発言の波紋で「たまったもんじゃない」「高市さんに真意は聞きたい」「国民に向けて説明してほしい」 [muffin★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【悲報】ゼレンスキー「高市早苗は生命を守り、国際的なルールに基づく秩序を擁護し、国家間の相互尊重を促している」 [616817505]
- 高市早苗、岸田政権(当時)に「台湾有事は日本の有事か」という質問をしていた [175344491]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 青椒肉絲、牛肉ではなく豚肉を使うのが本物だった
- ケンタッキーの○○○バーガーという予告がアレを想起すると話題に [523957489]
