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
Pinned
Rustの「安全」について、ボロクソに叩かれた記事が出たので、Rustの「安全」について、俺が認識していることを書いた

はてなブログに投稿しました
あなたが誤解しているRustの「安全」について - なんか考えてることとか opaupafz2.hatenablog.com/entry/2025/0...
#はてなブログ
あなたが誤解しているRustの「安全」について - なんか考えてることとか
最近(2024/1/18現在)、チェスプログラムの評価を通して、Rustをボロクソに叩いた記事がZennに投稿された。 zenn.dev Rustはデバックモードでのスタックサイズが限られていて、これが非常に愚かだ。 安全な言語なのにスタックサイズに制限がある事は愚かだ。 こんな事を書いたら、後からクレームのコメントがバンバン来るだろうなとは思ってますが、この動画で私が共感したのは、Rustは糞だ...
opaupafz2.hatenablog.com
某OSのインストールイメージ、複数のパーティションで構成されてるはずなのにパーティションがない状態なのはなんでだろうと思ってgdiskで見てみたら、バックアップヘッダがない状態で作られてることがわかった。 どういうことなの・・・
June 27, 2025 at 12:51 PM
Windows11、WindowsOSの法則に漏れずやはりク〇OSなんだなと。
OSイメージすらまともに書けない
June 6, 2025 at 11:52 AM
Funky! カーネルパニック、2!
May 17, 2025 at 12:04 PM
流行にちょっとだけ敏感なLinux君「APT APT APT APT APT APT Uh Uh-huh Uh-huh」
April 10, 2025 at 9:43 AM
一応、俺もRustに関しては中立的なスタンスでいる所存だけど、一つだけ確かなことは、TypeScriptやPythonは所有権以外で安全を保証している言語だから、パフォーマンスを意識しなければあまりありがたみはわからないかも / “Rustが嫌いです。” htn.to/2PabMdeetL
Rustが嫌いです。
htn.to
April 9, 2025 at 10:19 AM
Linuxのカーネルコンフィグを確認するためには、わざわざソースコードを確認する必要があると今までは思っていたが、ソースコードがなくても確認できる方法があるみたい。
まぁ、menuconfig使ったほうが圧倒的に見やすいけどな・・・
April 7, 2025 at 10:35 AM
なんでTypeScriptが生まれたの?
=> JavaScriptがヤバすぎるから

なんでReactが生まれたの?
=> JavaScriptがヤバすぎるから

なんであなたはJavaScriptを嫌ってるの?

=> JavaScriptがヤバすぎるから
February 5, 2025 at 10:55 AM
Rustの「安全」について、ボロクソに叩かれた記事が出たので、Rustの「安全」について、俺が認識していることを書いた

はてなブログに投稿しました
あなたが誤解しているRustの「安全」について - なんか考えてることとか opaupafz2.hatenablog.com/entry/2025/0...
#はてなブログ
あなたが誤解しているRustの「安全」について - なんか考えてることとか
最近(2024/1/18現在)、チェスプログラムの評価を通して、Rustをボロクソに叩いた記事がZennに投稿された。 zenn.dev Rustはデバックモードでのスタックサイズが限られていて、これが非常に愚かだ。 安全な言語なのにスタックサイズに制限がある事は愚かだ。 こんな事を書いたら、後からクレームのコメントがバンバン来るだろうなとは思ってますが、この動画で私が共感したのは、Rustは糞だ...
opaupafz2.hatenablog.com
January 18, 2025 at 7:32 AM
RustのSend/Sync、ごく一部の型にだけ実装されているのではなくて、むしろ逆で、ほぼすべての型がSend/Syncで、ごく一部の型がそうではないという感じなのねと思うなど
January 16, 2025 at 1:01 PM
C++で戻り値をoptional<T>に限定したいとき、template <typename T> optional<T> f()とかだとテンプレートパラメータの明示が必要になってしまうので、template <typename T> auto f()として、戻り値の型decltype(f())とoptional<remove_reference_t<decltype(declval<decltype(f())>().value())>>が同型であるかチェックすれば同じことを実現できた
December 16, 2024 at 1:44 PM
どうでも良いけど、個人的に難しすぎる案件が片付きそうでようやく一息つけそう。ドキュメントがほんっとうになくてめちゃくちゃ苦戦したが、何とかなった
December 5, 2024 at 10:59 AM
GCCだけかもしれないが、C++で実行時じゃないとサイズがわからない配列がある場合、VLAを使うよりも、std::vectorを使うほうが圧倒的に高いパフォーマンスを得られるので、VLAは使うべきではない(というか、C++標準にはない機能なのでそもそも使うべきではない)。
まぁ、std::vectorのほうがファイルサイズが若干増えるということも確かなようだが
November 24, 2024 at 1:43 AM
未定義動作を書いても良い!とか言っている奴。
C標準規格には、こう書いてある
November 5, 2024 at 10:56 AM
未定義動作コードというのは、「こう動作する」という確実なものはなくて、コンパイラが「PCを爆発させるコード」にコンパイルしてもC, C++の標準からは外れない。
C, C++とはそういう言語だ
November 4, 2024 at 11:03 AM
過度で無意味なセキュリティ対策ほど害悪なものはない。それが効果のあるセキュリティ対策ならまだしも、時代遅れで、むしろ逆効果なものを、とりあえず導入しようとしている。はっきり言って時間の無駄でしかない
October 29, 2024 at 10:03 AM
std::chrono::trigger;
October 25, 2024 at 10:58 AM
C++ヘッダファイルのテンプレートの仕様ヤバすぎる。定義と実装を分けたいだけなのに、普通にやろうとすると、未定義扱いになる。だから、簡単にこれを解決したい場合はヘッダファイルに実装も全部書く必要がある。
単なるコンパイラだと、実行するまでわからないが、Makefileだとリンクもチェックしてくれるので、止まる。シンプルなCはまだ良いが、C++はMakefile必須ですな
October 21, 2024 at 11:29 AM
まぁそもそもの話なんだが、Rustのトレイトって型じゃないというか、Haskellの型クラスに近くて、型よりも1段階上(これはカインドとか、そういう意味ではないです)の概念って感じだから、それを型で実現しようとするというのが無理があるんだろうなと思う
October 19, 2024 at 11:18 AM
そもそも今回の案件では使うことはないだろうけど、C++でRustのトレイトのようなデフォルト実装を用いるとき、よりRustのトレイトらしくあるためには、<T as Trait>::impl(&self)での呼び出しも実現できなくてはならないから、ちょっとした工夫が必要
October 19, 2024 at 10:54 AM
CRTPで静的インターフェースを定義したいときに、実装部分を非公開にしたい場合、ちょくちょく禁じ手と言われるfriend classを使わざるを得ないんだけど、これを回避する方法ってあるんかいな(ちなみにfriend classを使うと、すべてのメンバがインターフェースから使えてしまうのだけど、その対策は思いついている)
October 18, 2024 at 11:24 AM
VSCodeのC/C++拡張機能、TraitsのIntelliSenseが効かないの残念過ぎるな。Traitsとかよく使われるパターンなのに
October 18, 2024 at 10:28 AM
C++で関数の戻り値型を、別の関数呼び出しかつstd::optionalなどに依存させたいとき、そのデストラクタを持つメタ関数を用意して、static_assertすれば良いことがわかった。
static_assertはCRTPを使う場合に必要で(thisがメンバ関数内でないと使えないので)、そうじゃなければSFINAE使えば良いと思う
October 11, 2024 at 9:29 PM
申し訳ないが、率先して未定義動作コードを書く人は🤬としか言いようがない。
書いた通りに動かないだけでなく、ほかのコードにまで悪影響を及ぼす。別のもので例えるならば、電子レンジに卵を入れると、爆発するだけでなく、電子レンジの中もぐちゃぐちゃになるし、最悪電子レンジが使い物にならなくなる可能性もあるだろう。それと一緒だ
October 11, 2024 at 10:57 AM
C++でRustのトレイトみたいな実装できた。別のトレイトを必要条件とするトレイトの作成(トレイト継承)的なこともできるようになった
October 4, 2024 at 1:56 PM
C++でRustのトレイトみたいなのを実現するためには、Type Traitsの自作またはconceptを定義するだけでなく、クラス内にユニークなprivateメンバ関数を定義する必要があることがわかってきた。これができれば静的に共通化できそうだ
September 25, 2024 at 12:01 PM