2010-02-01から1ヶ月間の記事一覧

variantの実装(4) -static_visitor-

C++

前回(variantの実装(3) -placement new- - while( c++ );)のつづき。variantに任意のオブジェクトを格納することが出来たので、今回はオブジェクトを取り出してみます。 variantに格納されているのオブジェクト(storage_)の型は、メンバwhich_で型に対応す…

variantの実装(3) -placement new-

C++

前回(variantの実装(2) -aligned_storageを作る- - while( c++ );)のつづき。 参考 2005-11-02 アライメントの問題はおそらく解決できたので、placement newを使ってスタック上の未初期化領域に任意のオブジェクトを生成してみます。 class Hoge { public:…

variantの実装(2) -aligned_storageを作る-

C++

前回(variantの実装(1) -みんな大好きテンプレートメタプログラミング!- - while( c++ );)のコメントで、アライメントの問題に関してご指摘を頂いたので、variantの実装の前にaligned_storageを実装してみたいと思います。 ただしVC++2008だけを想定した…

variantの実装(1) -みんな大好きテンプレートメタプログラミング!-

C++

参考 Chapter 27. Boost.Variant - 1.42.0 letsboost::variant Boost.Variant の assign の処理 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ Tiny Template Library multi-type, single value. 1つの変数で複数の型を扱いたい場合、C言語…

TinyXML + babelを使ってみる。(3) -シリアライズ-

前回(TinyXML + babelを使ってみる。(2) -Visitorでトラバース- - while( c++ );)の続き。今回はシリアライズ、デシリアライズについて勉強します。 といっても、XMLファイルへの出力にはまだ触れていないので、デシリアライズのみ扱います。 シリアライズ…

TinyXML + babelを使ってみる。(2) -Visitorでトラバース-

前回(TinyXML + babelを使ってみる。(1) - while( c++ );)の続き。 XMLファイルからDOMツリーを構築 TiXmlDocument doc(pFilename); bool loadOkay = doc.LoadFile(); if (loadOkay) { ... } else { //Failed to load file } メモリからDOMツリーを構築 Ti…

winsockを使ってみる。(2) -acceptスレッド-

前回(winsockを使ってみる。(1) - while( c++ );)、コネクションを作って簡単な送受信を行いましたが、acceptはいわゆるブロッキング関数であり、クライアントが接続してくるまで、またはサーバソケットが閉じられるまで、呼び出し元スレッドが停止します…