Ukicode@Mastodon優先
opaupafz2.bsky.social
Ukicode@Mastodon優先
@opaupafz2.bsky.social
自称エンジニア。心は常に初心者のつもりで。一応ゲームもやるかも。
C/C++/C#/FORTRAN77/Fortran90/Haskell/JavaScript/Kotlin/PHP/PureScript/Python/Rust/VBA

Twitter(Notestock): https://notestock.osa-p.net/@opaupafz2@twitter.com/view
Mastodon(Fedibird): https://fedibird.com/@opaupafz2
いやまぁ確かにGPTはプライマリヘッダかバックアップヘッダのどちらかが正常であれば動きはするのだが、なかなかに攻めたことしてるなと。安全に作るんだったら、ループバックデバイス作ってパーティション構成して、データを書くなりしたほうが良いと思うのだが・・・
June 27, 2025 at 1:10 PM
ZigはC++をも現代風にしたって書いたけど、Zigの場合は自動メモリ管理をサポートしない(スマートポインタがない)ので、C++っぽくはない。訂正しておく
April 9, 2025 at 10:58 AM
俺の認識に間違いがなければ、安全性と処理速度に対して中間的な立場を取っているのがGoで、Goの場合はスコープ内で完結できていたらC, C++の間接アクセスと同等になる(はず)けど、スコープ内で完結できなければ、GCを使うようになっている(はず)。
Zigも挙げられてたけど、Zigは、C, C++を現代風にした言語(ただしメモリ安全ではない)という感じ
April 9, 2025 at 10:53 AM
Rustの所有権の一番のメリットは、GCによる実行時オーバーヘッドをなくし、安全にしたうえで処理速度が高速なプログラムを作ることを可能とする点にある。
だから、パフォーマンスを意識しない人にとっては、あまりありがたみを感じないのよね。ハッキリ言って
April 9, 2025 at 10:47 AM
たとえばTypeScriptでクロージャで自由変数を閉じるっていう有名なパターンがあると思うんだけど、あれってC, C++でやろうとすると危ないんだよね。
なぜなら、普通はダングリングポインタになって未定義動作になりかねないから。
しかし、TypeScriptだとこれは起こらない。なぜならGCによって安全にメモリアクセスできるようになってるからだ。
Rustだと、これはコンパイルエラーとなる。だから所有権を奪うなりRcを使うなりする必要があるわけ
April 9, 2025 at 10:33 AM
まぁカーネルコンフィグを変更する場合、結局ソースコードが必要になるわけだけど、もしすでに有効化されていたならば、ソースコードを持ってくる必要がなくなるのでそういう場合に効果的だと思われる
April 7, 2025 at 10:49 AM
Member Detection使っても良さそうだけど、Member Detectionだと穴がありそうで、この方法だと確実にoptionalであることが保証されるから、安心できると思う
December 16, 2024 at 2:02 PM
optionalはクラステンプレートなので、自前で作るのもなかなか面倒だが、is_optionalを自前で作っても良さそう
December 16, 2024 at 1:53 PM
要約すると、未定義動作というのは、「やらなければならない」または「やってはならない」を破った結果だということだ。つまり、「やっても良い」ではなく、文字通り「やってはいけない」んだよな
November 5, 2024 at 10:57 AM
> If a "shall" or "shall not" requirement that appears outside of a constraint or runtime-constraint is violated, the behavior is undefined. Undefined behavior is otherwise indicated in this document by the words "undefined behavior" or by the omission of any explicit definition of behavior.
November 5, 2024 at 10:56 AM
つまり、何が言いたいかと言うと・・・

処理が高速になることを祈って未定義動作コードを故意的に書くんじゃねえってことだ
November 4, 2024 at 11:05 AM