Yoh2の日記: ++yoh2
T/O
T/O
近頃気に言っている Rust には ++ がないのでこの記法にしてみた。
mut で宣言されていたか怪しいので
let yoh2 = yoh2 + 1;
の方がよかったかな?
無謀にも自インスタンスからフォロー。しかしこの子挙動がおかしいの……
そしてプレビューのみで満足していてこれの投稿を完了したのがフォロ返しされた後 (´・ω・`)
あー、うん。
去年忘れてた。すっかり寄付かなくなってしまった (- -;
ありがとうございます。
単純に
++yoh2;
のつもりでしたのでそこまで深く考えていませんでした。そうかそうい捉え方もあるのか……
理由はminetさんの意見の通りです。
C++の世界には、RAIIの概念を利用した、宣言しかないけど省略してはマズいクラスインスタンスがごろごろしているわけで。
単純なクラスならオプティマイザが効くかもしれませんが、ある程度複雑になるとコンパイラはそういった連中と区別付かなくなるのではないかと思い始めた次第です。
年齢なんていかにもな整数型なら関係ないのですがどうせなら統一していこうかと。
最近前置派に宗旨替えしようとしてる。
自分のところ(x86とppc)で動けばいいや、というプログラムの場合、アライメントを気にせず読み込んでhtonlなどでバイトオーダー調整なんぞやってたもんで。memcpyすらタイプを面倒がってました。
フリーダムだという保証があるのかフリーダムだと思い込んでいただけなのか、そこが問題なわけで。
ロクに調べないうちに日記を書いたので、もう少し調べてからにした方がよかったかもしれませんが。
といっても 、過去にvoid * と関数へのポインタ の相互変換を認める追加ルール (※) を探しても見付けられなかった程度の調査力なので、きちんと調べても調べ切れるかどうか。
※ C99以降 (それ以前は知らん) では、関数へのポインタは他の関数へのポインタへの変換以外は規定されていないので、追加ルールがないとvoid *との相互変換は未定義。そしてこれが未定義になるとdlsymの存在意義に関わってくるのでどこかで追加ルールを設定しているはず。
しかし、もしアライメントが揃っていないアドレスへのアクセスがダメとの結果が出たら過去に書いたIPヘッダとかISO9660とかのパーサが……
奇数アドレスからの複数バイトフィールドとか、4で割り切れないアドレスからの4バイトフィールドとかあるし。
アレゲは一日にしてならず -- アレゲ見習い