いろきゅうのブログ

はてなダイアリーから移行中…

enumの大きさ

突然ですが!

enum ってありますが、コイツは int と互換性がある事は衆知の事実です。つまり,Win32環境でビルドした場合では sizeof(enum_type) == 4 は確定でしょう。

しかしながら、気になることが。
32bit環境では、一番相性の良い 4byte になるのは良く解ります。 じゃぁ 64bit環境ではどうなるんだろう…?と。

int と互換性があるってことは、64bit環境でも4byte なのだろうか…。でもそれだと、折角の64bit幅が勿体無くね? MSは独自拡張してねぇのかな?


というわけで、VS2005b2にて以下のコードを x64 でビルドしてみました。

enum A
{
  A_ForcrPTR = MININT_PTR;
};

結果。 C4341 でした。(死
64bit環境でも、enumは "int" までしか扱えない模様です。


……勿体無い仕様だなぁ。
何が気になるって、構造体のメンバにしたときアライメントの関係で無駄な4バイトのスペースが出来てしまうだろう点ですね。多分8バイトアライメントでしょうから…。(気にしすぎという話もありますけど^^;)


ただ、この根本の原因は、Win64環境での sizeof(int) == 4 な点に有るような気がしないでもないですー
>どうにかならんかったのかなぁー。(苦笑

悲しみのコーディング

7年間ぐらい大切にしてきたものがポックリ無くなってしまい ウボァー という感じ…。いや「ウボァー」どころの騒ぎじゃぁないんですけど…
ココまで縁が長いと、無くなったときの衝撃ってのも相当な物ですね…。

そんな、とんでもない悲しみに追われつつも、コードは打たなくてはならないというのがなんとも。
いやまぁ、別に打たなくても良いんですが…「この1分1秒を休んだ事により、他の人は何処まで進むものか!」とか考えると、そう簡単に休めないなぁ…とか思ってしまいます。

というわけで、いつもよりひっそりと、かたかたコード打ち中。
……ココロの隙間を埋めてくれる人、募集ぅ〜。(2次元可:ぇ

寝まくり…

…今日は1日中寝ていたような感じが…

朝起きたのが13時30分。(ぉ
その後また眠くなって、15時ぐらいには就寝…。気づいたら20時…。

…だらけ過ぎやん。俺。orz



さてさて、C69の申込は明日で締め切りですよー。
不備の無い様にしっかり配置データ書いて申込しましょうねー

私も書かないとなぁ。^^;

お疲れ様でしたぁぁぁぁーーーー!!

夏の聖戦、参加された方お疲れ様でしたーーーーー!!!
いやー今年の夏は、初めて「熱い」と思いましたわ。私。水分補給しまくり…。 いやー暑かった。^^;

さて、当サークルは、12時ごろに完売いたしました! 本人は 「マジか!?落ち着け!」 状態。 全てはけるとは思ってませんでした、正直。^^;

完売した後も、それなりの人が興味をもたれていた様子でしたが…あぁぁ、ゴメンナサイゴメンナサイ、もうちょっと生産できるように努力しますデス。はい。
…とはいえ、すべてお手製で作っているので、体力面等で厳しい面があったりします。今後何処まで生産できるようになるものかー


あぁでも、その前にしっかり完成させろととかそんな話ですか。そうですかそうですか。orz



で、今日は1日寝てました。^^;
徹夜で参加してた身としては、なかなか厳しかったようです…。

というわけで、連絡待ちしている方々、もう少々お待ちくださいー



さてー、C69の申込書書かないとなー!

準備完了![3日目]

よーやく出し物の製作が完了しましたーーーーー!
…って、何でまた夜通しになっとるんじゃーーぁぁぁぁ!! CD焼き上げたのは午前中だし、プリンタも19時代には稼動していたはずなのに…




…もしや、メッセで友達と喋りすぎたかっ!?orz


とまぁとりあえず、出し物の製作は完了したので、当日何も無いと言う状況は回避できました。 中身についてはスルーする方向でよろしくお願いします。(死


ちなみに、簡単な開場案内図をサークルスペースに張っておく予定ですので、当方関係で迷った方は活用してください。(ぉ

それでは、当日来られる方は、がんばっていきましょーーー!!!




(…今年も寝れないで参加か… orz)

CD量産開始![2日目]

というわけで、夏の聖戦2日目ですー
朝っぱらは雨のようですが、午後からは止んで曇りになるみたいです。 シャッター前サークル目的の人たちとかは命拾いっぽいですよー。(笑 ^^;

さて、a:\いろきゅううぇあ.exe も明日3日目に参戦する訳ですが、出し物である同人ソフトのCDの量産を開始しました。
えぇ、数が少ないですから、手動で愛を込めて手焼きですよ!
結局内容物は、コミケットスペシャル+αぐらいになりました。^^;
[変更点]
・ふぃふぽん が改良されました
・ふぃふぽん開発裏話が収録されました。
・ふぃふぽん内部開発資料(UML)を収録しました。
…の3点?
……変更点コレだけなのか。orz
ちなみに、約2万行の Direct3Dライブラリ 「いろきゅうらいぶらり」 も同梱されてるので、Direct3D関係のソースコードが欲しいよー という人は、ぜひとも等サークル [西し-11a] へお越しください♪
…まぁただ、ソースコードは期待しないで下さいネ。 orz


…さて、私はこれからプリンターを買いに行かなきゃーならんのかー。
何で直前になって壊れるかにゃー… orz

バグを探して4時間

どーも、バグが取れない!
Dump() で正常な値が表示できない!
ナゼ「ぬるぽ」が発生するんだぁぁぁ!!!!

と4時間ぐらい(実は5時間ぐらい?^^;)悩んでました。
それが以下のコード(擬似コードですが)。
さぁ、何処に問題があるでしょー?
(回答は下のほうに)

void Q::Dump() const
{
  ir9::OutputDebugStringF(
      _T("\n-----  Q [size = %d] -----\n"),
      m_stlCountList.size());
  TCountListCIt itEnd  = m_stlCountList.begin();
  for(TCountListCIt it = m_stlCountList.end(); it != itEnd; ++it)
  {
    const TCountListType& sPair = *it;
    ir9::OutputDebugStringF(
      _T("type : %s\tcount : %d\n"),
      g_cGenerateType.cast(sPair.second),
      sPair.first);
  }
}

void Q::Insert(CUINT nCount, CINT nPriority)
{
  m_stlCountList.push_back(
      TCountListType(nCount, nPriority));

  Dump();
}




……ね。もうね。
コードがテンパってますよね。ハハハハハハハ.... orz

----------------------------------------
答え

itEnd = m_stlCountList.begin();
it      = m_stlCountList.end();
この状態で for ループとな…。
end から begin に ++ していくって…終わらないじゃん!ヽ(`Д´)ノ