下記のコードは、普通に通るよね。

C++:
  1. #include <boost/shared_ptr.hpp>
  2. #include <iostream>
  3.  
  4. int main(int argc, char** argv)
  5. {
  6.     boost::shared_ptr<int> p;
  7.     if (p == NULL) {
  8.         std::cout <<"null" <<std::endl;
  9.     }
  10.  
  11.     return 0;
  12. }

んで、NULL を置き換えてたらコンパイラが落ちました。

C++:
  1. //! ぬるぽ
  2. //! http://ja.wikibooks.org/wiki/More_C%2B%2B_Idioms/nullptr
  3. // const オブジェクトであって、
  4. const class nullptr_t
  5. {
  6. public:
  7.     // 任意の非メンバ型のヌルポインタや、
  8.     template<class T> operator T*() const { return 0; }
  9.  
  10.     // 任意のメンバ型のヌルポインタに変換可能であって、
  11.     template<class C, class T> operator T C::*() const { return 0; }
  12.  
  13. private:
  14.     void operator&() const// アドレスを取得することができない。
  15. } nullptr = {};
  16.  
  17.  
  18. //! NULL 値
  19. #undef  NULL
  20. #define NULL nullptr
  21.  
  22. #include <boost/shared_ptr.hpp>
  23. #include <iostream>
  24.  
  25. int main(int argc, char** argv)
  26. {
  27.     boost::shared_ptr<int> p;
  28.     if (p == NULL) {
  29.         std::cout <<"null" <<std::endl;
  30.     }
  31.  
  32.     return 0;
  33. }

fatal error C1001: コンパイラで内部エラーが発生しました。
(コンパイラ ファイル 'msc1.cpp'、行 1393)
この問題を回避するには、上記の場所付近のプログラムを単純化するか変更してください。
詳細については、Visual C++ ヘルプ メニューのサポート情報コマンドを
選択してください。またはサポート情報 ヘルプ ファイルを参照してください。

何も落ちなくてもなぁ。。
ちなみに if (p != NULL) でも落ちました。

新型来たね。
最近本体料金を異常に安くしてたけど、やっぱ新型が出るからだったんだね。
旧型買ってしまった人は2年契約なわけで。やるな Apple。

新型も安い。16Gモデルが19800, 32Gモデルが29800円。
ちょっと考えてしまうなぁ。
http://www.apple.com/jp/iphone/iphone-3g-s/

mac book も安くなって、Apple 素敵です。

メモメモ。
riece でircサーバと ustream の共存設定。

環境:
Mac OS X 10.5.7
GNU Emacs 22.3.1 (i386-apple-darwin9.6.0, Carbon Version 1.6.0)

おもしろWEBサービス開発日記を参考にしながら最新のriece-6.0.0.tar.gz で試したけど、そのままじゃうまく動かなかった。

下記のように設定することでうまく動作した。

;; -*- Mode: Emacs-Lisp ; Coding: utf-8 -*-

(add-to-load-path "~/.emacs.d/elisp/riece/lisp")
(load "riece")

(setq riece-server-alist
'(("ircnet" :host "irc.tokyo.wide.ad.jp" :service 6668 :nickname "NICKNAME")
("ustream" :host "chat1.ustream.tv" :service 6667 :nickname "NICKNAME" :username "USERNAME" :password "PASSWORD" :coding utf-8)
))

(setq riece-server "irc.tokyo.wide.ad.jp")
(setq riece-nickname "NICKNAME")
(setq riece-startup-server-list '("ustream"))

(setq riece-startup-channel-list
'("#channel_1" "#channel_2" "#channel_3" "#channel_ust ustream"))

windows vista sp2 が来てました。
家に帰ったらさっそく入れてみます。

colinux 0.7.4 が来てました。
カーネルの更新や、ネットワークブリッジの更新なんかがあるみたい。
でも vista 64bit には相変わらず非対応。。

visual studio 2010 beta1 が一般公開されてます。
STL の見直しや、一部 C++0x 対応などがあるらしいです。

windows 7 RC が一般公開されています。

windows xp 入手困難に
新しい windows が見えてきましたけど、xp の在庫がなくなって来たようです。
欲しい人はお早めに。

 
amazon のアフィリエイトアカウント取ってみた。
ぶっちゃけアフィリエイトはどうでもいいんだけど、写真付きでリンク貼れるのが便利なのよね。

最近読んだ本

きじねこの高木氏の本。
組み込みといわず、C/C++のちょっとマイナーな話が面白い。


Faith and Brave のアキラ氏、東方算程譚のεπιστημη氏の共著。
template の仕組みやテクニックについてわかりやすく書かれている。
Modern C++ Design には挫折してしまったという人はこちらオススメ。

今読んでる本


まだ全然読めてないー

GDC 09 報告会行ってきたので、簡単なメモを貼付け。

新清士(IGDA日本)
「IGDAのアップデート情報、今年のトレンド」

今年は iPhone がずいぶん紹介されていた。
キーワード:iphone, indy game, nintendo, keynote, iwata, zelda, kojima...
意外にも? android は注目されていない様子。
ゲーム産業が network distribution になりつつあるという話もあったり。

下田賢佑(フリーランス、ゲームデザイナー)
「GDCにおけるゲーム開発者のネットワーキングの実態〜GDCトレンド」

人脈作りのためはるばるGDCへ。
カンファレンスだけがGDCじゃない!

長谷川亮一(セガ)
「(仮)ローカリゼーションサミットについて〜サミット報告」

ゲーム市場のグローバル化に伴うローカライズの重要性や各国の対応や意識についての話。
やはりレーティングが難しい。(宗教、暴力、性的など。。
現実問題としてツールがあるわけではなく、各社が場当たり的にノウハウを積み上げている段階とのことで。

大前広樹(フロム・ソフトウェア)
「(仮)GDCのランチは実はうまい〜ラウンドテーブル系セッション報告」

前座
 GDCのパンはパサパサしている → マヨネーズは2個が良い。
本題
 GDCラウンドテーブルに参加するメリットやデメリットなどの話。
 ラウンドテーブル参加者はディレクタやマネージャが多い。
 メリット:
  わからない点を聞ける、他のチームのやっていることが聞ける、どこでつまづいているか知ることができる
 デメリット:
  まとまった情報が得られない、驚くような情報は得にくい、望んだ回答が得られるかはわからない
 英語力は自己紹介程度できれば何とかなる。が、できるに超したことはない。
 同じテーブルに何回か出るべき。1回目で様子を見つつ、質問を考え、次でその質問をする。

金久保哲也(バイダイナムコゲームス)
「(仮)グラフィックス関係セッション報告」

アートワークのパイプラインの話で、作品と手法の紹介がメイン。
 Behind the Scenes: 日本も海外もあまり変わらない印象
  The GEARS OF WAR、RESIDET EVIL5、バイオハザード5
 ユーザジェネレートシステム: アーティストの自由度も考慮したキャラクタジェネレートシステム
   SAINTS ROW2、Little Big Plaet
 キャラクタセットアップ事例
  GOD OF WAR
アートワークと技術面のひも付け、コンセプトをどのように技術的に表現するか
「何を使うか」から「どう進めていくか」アーティストが迷わない流れを作ろう。

三宅陽一郎(フロム・ソフトウェア)
「これからのキャラクターAIの作り方〜AIセッション」

GDCでのAIセッションについての話。とあと三宅節。
環境や身体状態からのAIをプロシージャル、セミプロシージャル、固定アニメーションの
組み合わせにより導く手法がこれから注目。

西川善司(トライゼット)
「(仮)グラフィックス関連セッション報告」

グローバルイルミネーション(GI)とDeferred Shadingの話。
各エンジンにもGIが実装されてきている。CRY ENGINE3, UNREAL ENGINE3など
あと作品とその中で利用している技術の紹介など。
Larrabee, DirectX 11 の話なども。
Deffered shader, GI, Larrabee, dx11 を気にしておこう。
資料が公開されたので、詳しくはそちらで → (善)力疾走

関連:東方地霊殿で d3dx9_37.dll が無いといわれる

今回は d3dx9_40.dll が必要なようです。
とりあえず、最新のDirectX のランタイムを入れれば問題ないです。
DirectX エンド ユーザー ランタイム Web インストーラ

d3dx9_40.dll は DirectX SDK Nov 2008 のものなので、最新のランタイムまではいらない人は下記をインストールすれば良いです。
DirectX End-User Runtimes (November 2008) - 日本語

自分は楽しい嘘とか思い浮かばないので、もっぱら楽しませてもらう側です。
きゅうりおいしいです。

MS、高校生の自宅学習用にソフトウェア無償提供開始

このサービスで信者が増えるかは謎ですが、ユーザは増えるよね。
学生はいいなぁ。

Tech Days 2009 の動画が公開されていたので、川西先生のセッションを聞いてみました。
Windows7 からの Direct2D, DirectWrite の詳細や Direct3D 10 について興味がある方は是非聞いてみてくだしい。

Direct2D, DirectWrite は綺麗だなぁ。しかも早い、アンチエリアス使える、使用メモリは減る、何この完璧超人。
ただし戦うフィールドは選ぶ(vista 以降)

DirectX SDK (November 2008) にて追加された Direct3D10Level9、こいつが優秀。
Direct3D10Level9 は Direct3D 9 のハードウェアで Direct3D 10 を利用できるというもの。
OSがVista 以降っていう制限は相変わらずだけど、ハードウェアが DX10 未対応でも DirectX10 が利用できる点はすごいよこれ。
じゃあパフォーマンスはどうなのか?というと、十分出るという話です。
# 動作にはWDDM(Windows Display Driver Model) が必要だと仰っていましたが、Vista 以降なら勝手にドライバ入りそう。

Windows 7 ではリモートデスクトップが改善されるらしい。
Aero 対応や Direct2D, Direct3D10.1 によるクライアントレンダリングで描画がかなり高速になるよ!

copy コマンドで簡単にできるんだね。知らなかったー。

copy /b file.a + file.b file.ab

バイナリファイル連結とか便利だなぁ。