last update: 2013/09/03

2005/09/07

台風きてるね

台風きてる間は家からでません。

といいたいところだけど、実家から帰ってきたばっかりで食糧の備蓄がーと思ってたら昨日タイムリーに実家から小包がとどいて、中に食料が! 大体実家に帰ると忘れ物をしてくるので毎回忘れ物と一緒に食べ物を送ってくれます。今回は忘れ物無かったんだけど。

えーと、カップ麺ばっかりじゃねーかー、最近もう昔ほどカップ麺食べねぇよーとおもいつつ、とりあえずありがたく貰っておくとして、他には…わぁいチーズケーキだー。他にもなんか手作りイクラ(よく父親が生筋子買ってきてばらしてイクラにしてくれる)とか焼き豚(なんか最近よく作ってるらしい)とか塩辛とかも入ってて、これだけありゃーご飯炊いてればしばらくおかずにはこまんねーなーみたいな感じです。

っていうかちょっとイクラ多すぎなので(一人でたべるとなると数日ずっとイクラ丼の予感)、食べたい人はうちに来たらごちそうします。

これで家から出なくて済むぞーと思ってたんだけど、家にいたところで何をする? みたいな感じなので、じゃあいろいろと忘れないうちに片付けるかーと。となるとWebマネー買ってこないと…ってことで、雨がひどくなる前にコンビニにダッシュしてきました。室蘭って海のそばな上に周り240°ぐらい海に囲まれてるので、台風とか来ると他の地域よりもかなりはやく風強くなって雨降ってくるんですよねぇ。

とりあえず、Webマネー買ってきたのでbeatsync.netのドメインとxreaの広告免除を延長しておくことにします。

const_castの使い道

イマイチC++の4つのキャスト(static_cast, dynamic_cast, const_cast, reinterpret_cast)って使いどころがはっきりしないんですけど、C++書くからにはC式のキャストじゃなくてこっちのキャストを使いたいわけです。

まぁ、singedだったのをとかをunsignedにするとかだとstatic_castを使って、void*だったのをDWORDとかにキャストするときはreinterpret_castを使って、CWnd*をCFrameWnd*に型保障でキャストするときはdynamic_castを使ってー(dynamic_cast後にNULLチェックが必要です)みたいな感じなのはいいとして。

問題はconst_castなわけですよ。constをはずしてくれるこのキャスト、イマイチ使いどころがわかりません。だって、constはずさなきゃならないときとかって、それはconstなオブジェクトを渡すのが間違ってるじゃん。だってconstなオブジェクトに改変される可能性のある操作はしちゃいけないでしょ。

と思ってたんだけど、わりと妥当な使い道を最近一つみつけました。

string str("I have something to say");
DrawTextEx(memDC, str.c_str(), static_cast<int>(str.size()),
           &rect, DT_NOPREFIX | DT_WORDBREAK | DT_EXPANDTABS, &dtParam);

これ、第2引数でエラーがでます。DrawTextExの定義で第2引数がLPTSTRになってるんですが、表示するだけなんだから文字列を読み込むだけで書き込みはしないだろう、思って調べてみました。DrawText(Ex)は第5引数のフラグでDT_MODIFYSTRINGを指定すると実際に表示された文字列を格納するという動作をするので、この時のみ第2引数の文字列へのポインタが改変される可能性があるわけです。でも、オレいまはそんなフラグ指定してないから、普通にconstな文字列へのポインタを渡したいんだよおおおおお!

そこで、DT_MODIFYSTRINGを指定しないので文字列が改変されないことが自分で保障できるので、ここでconst_castをつかって、そのままstringオブジェクトのCスタイル文字列をわたしてやるぞ、という話。

string str("I have something to say");
DrawTextEx(memDC, const_cast<LPSTR>(str.c_str()), static_cast<int>(str.size()),
           &rect, DT_NOPREFIX | DT_WORDBREAK | DT_EXPANDTABS, &dtParam);

まぁ、const_castを使わずに、一時変数でバッファを用意して…とかやってもいいですけど、はっきりいってそれは無駄だよなぁー、ってときのconst_castって感じでしょうか。いや、Windowsで文字描画するならTextOut系使えばーって話なんですけどね。おとなしくそうしようか。

迷子のWebMoney発掘

XREAで広告免除+ドメイン1年延長すると2400円+1000円で3400円かかるんですけど、これWebMoney(WM)ではらうとなんか10%の手数料かかって3740円分のWMをとられるんですよ。つまり5000円のWMを使うと1260円あまるんですよね。まぁ500円以上あれば別のところでつかえるんですけど、260円はさすがに端数すぎて使えない。

で、そんな去年の260円ののこりのWMがどっかにあったはずなので、今年もそれを使えば端数の残りが20円になって、そのぐらいならポイしてもいいかーみたいな感じなので、がんばってさがしてみた。

み、みつかんねー。

ちなみになぜか1300円残ってるWMとか、800円のこってるWMとか、そんなのはでてきました。1300円は何の残りなのかはわかったんだけど、800円の方は何の残りなのかさっぱりわかりません。なんの残りだろう…。

で、結局まだ260円のWMが見つからないのでXREA支払いはまだお預けです。まぁ11月末までにやればいいんだけど、どうせ10月はいるとまた後期ってことで授業とかもあるから暇な9月のうちにやっつけておこうと思ったんですけどね…。

comments powered by Disqus