2005-01-01から1年間の記事一覧

A challenging task - Seekable conversion stream filter

今,シークが可能な入力ストリームがあったとして,そのストリームに何らかの変換,例えば文字コード変換を行ってその変換結果を読むようなフィルタを実装するとする. 便宜上,(フィルタから見た立場で)変換前の入力ストリームを「入力ストリーム」,変換…

うにこーどのおべんきょ

この前買い込んだ本そっちのけで以下らへんを読み漁って Unicode 周りのおべんきょ. http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS%2FISO%2FIEC+10646%2D1%2D2000 http://www.amazon.co.jp/exec/obidos/ASIN/0321185781 http://www.amazon…

Exception specification - 例外指定

C++

まー,一般に C++ の例外指定は避けるべき(例外非送出指定 throw() だけは場合によっては OK)というのが半ば常識だけれど,これは例外指定が実行時での検出なので実行時のオーバーヘッドを食う上に,例外指定に違反した場合,単に unexpected が呼ばれるだ…

VC++7.1 の std::codecvt

C++

VC++7.1 の標準ライブラリに規格違反めっけ.規格では std::codecvt::length, std::codecvt::do_length のシグネチャは各々以下のように要求されている. int codecvt::length(state_type &, extern_type from, extern_type from_end, size_t max); virtual …

まるで面白くないアラインメントに関する考察

以下,自動変数の char 配列として確保した領域に,配置構文 new でオブジェクトを構築する方法に対する安全性の考察をやっています.ただし,C++ におけるアラインメントの考察を,実際のハードウェアなどの概念から完全に隔離された,厳密な規格の記述だけ…

未初期化な領域とアラインメント

http://d.hatena.ne.jp/Cryolite/20051021#p1 の問題に対する解答. まず大前提として,未初期化な領域に配置構文 new を用いてオブジェクトを構築する手法は潜在的な危険が多く,本当にそれが必要な場合以外は用いないという方針が基本であることを確認して…

キョウハクDOG's

キョウハクdog’s 1 (電撃コミックス) こ,これヤヴァイ.萌え転がった. 「萌え転がる」という動詞がよく分からない方のために説明しておくと,「萌え転がる」というのは萌えるあまり転がってしまう行動を指します.そのまんまやがな.例えて説明するなら,…

アラインメント in C++

C++

っていうか,C++ ってアラインメントについては 3.9 Types 5 Object types have alignment requirements (3.9.1, 3.9.2). The alignment of a complete object type is an implementation-defined integer value representing a number of bytes; an object …

Boost のファイルのうち必要なものだけを抜き出す

以下,BOOST_ROOT を Boost のディレクトリのルートとする. 今,BOOST_ROOT にいるとする.コマンドライン上で tools/bcp へ移動して bjam でビルド. >cd tools >cd bcp >bjam (オプションは Boost のライブラリのビルドと一緒)この時点で BOOST_ROOT の…

今日の収穫物

『人を10分ひきつける話す力』 ふふふ…….これでおにゃのこととの会話テク(≒正しい選択肢を選ぶコツ)は完璧……. 『珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造』 前から欲しくて仕方がなかった1冊だけれど,今回ようやく入手.でも,仕…

親子の会話

実家に帰ったらなぜか私の部屋の床に私が所有しているポスターが全て床に丁寧に広げられ,その上に重しのごとく物が乗せられている.よくよく見ると,ポスター1枚1枚が透明のカバーで覆われている. 言わずもがな,犯人は私の母である.確かに,前からポスタ…

門井亜矢さん

門井亜矢さんって,最近きららMAXの表紙飾ってることが多くてそこそこ人気のある有名な方なんだなー,ぐらいに思っていたんですが下級生シリーズの原画さんだったんですな.そりゃ有名なわけだ,っつーか下級生っつーたら去年の騒動のイメージが先行するんで…

キャラメルコーン2

今更知ったんですが,今年のお正月に出た,とあるギャルゲが PC でも出るみたいですね.PS2 本体買ってまでやる気はなかったけれど,PC で出るんなら買ってみたいなというか,PC 版で追加要素があるみたいだというか,むしろその追加要素が購入動機の主たる…

"C++ Coding Standards" の訳本

今日ふとしたきっかけで書店に立ち寄った.そしたら偶然『C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)』("C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ In-Depth Series)"の訳本…

すいません.id:Cryolite:20051021#p1 の解答は少しだけ待ってください.ちゃんと書こうとすると抑えてないといけないものが多すぎる….

未初期化な領域とアラインメント

(注意:あくまで C++ の言語規格 ISO 14882-2003 のみを想定します) 未初期化なメモリ領域を char 配列の自動変数として(スタック上に)確保し,その領域上に別の型のオブジェクトを構築するコードを考えてみる. class MyClass { ..... }; int main() { …

Boost.Test によるメモリリークの検出@MSVC

Boost.Test が,いつの間にか MSVC 上でメモリリークをレポートしてくれるように改良されていた.これでもうメモリリーク検出のための設定をいちいち自分で呼び出す必要がなくなった.ちょーウマー. #define BOOST_AUTO_TEST_CASE #include <boost/test/auto_unit_test.hpp> BOOST_AUTO_TES</boost/test/auto_unit_test.hpp>…

const 参照エミュレーション

C++

const 参照をエミュレートするクラステンプレートが実装可能か?つまり以下のようなクラステンプレート template<class T> class const_reference { ????? };があったとして, int i; double d; const_reference<int> rci1(i); // i への const 参照として振舞う const_ref</int></class>…

Expression Template によるグローバルな評価

ふと思ったけれど,Expression Template で代入文の右辺だけじゃなくて,代入文も含めて ET にしてしまって,full expression の評価が完了した時点の一時オブジェクトのデストラクタ発動のタイミングで,ET にエンコードされた実際の式の評価を発動するっつ…

そんな事より,ちょいと聞いてくれよ.C++ とあんま関係ないけどさ.いや,C++ と関係ある必要は全然ないんだけれど. このあいだ,武道館行ったんです.ぶどーかん.このあいだっつーか昨日なんだけれど. そしたらなんかヲタがめちゃくちゃいっぱいで入れ…

카지노에서 6000원 졌다.사죄와 배상을 요구한다!!

SICP Exercise memo

なぜか突然 SICP の Exercise のメモ.全然ブログのネタにしてなかったけれど http://d.hatena.ne.jp/Cryolite/20050714#p1 以来,鋭意継続中.目指せ全 Exercise 制覇.というか SICP はタダで全文見られるので,実はこれ結構面白い企画なのではないかと思…

ふー,まだ手に汗握ってるよ俺.そこまで緊張するほどのことでもないのにな.

コンセプト

http://tinyurl.com/8wsoz (以下の各引用はちゃんと元のポストを読んで,その文脈を把握した上で読んでくださるよう強くお願いします) If there were some abstract type from which int, char, etc, were derived then templates would be unnecessary. I…

Type Erasure - 型消去

C++

C++ でテンプレートを使えば静的にポリモーフィックな Duck Typing というか,ある構文が有効であれば継承関係も何も無くても O.K. (専門用語で言えば,あるコンセプトのモデルを全て受け付ける)というコードを書くのは非常に簡単.ただし,一方で静的多相…

Aspective な機能追加

Mix-in というか,クラスに対して aspective な機能の injection をやろうとするときには,クラスに随伴する名前空間(associated namespaces)に ADL hook を追加するっつーのが最近の C++ での流行なんだろうか? ちぅか,Boost のその系統のライブラリは…

阪神優勝 v.s. ネコ耳ロボット

阪神優勝の際に,岡田監督の母親が泣いているのをテレビで見ていた私の母が私に一言. 「もし,アンタがネコ耳ロボットを完成させたとしても私は泣かれへんなー」 ……別の意味で泣かれるかも知れないが. まぁ,でも私が 「紹介するわ.これが今のオレの彼女…

ぺったんこ

ぺったんぽで思い出したが,以前師匠との深謀遠慮たる議論で「べっかんこう」という名前はハンコを押すときの「ぺったんこ」という擬音が由来ではないかという結論に至ったことを思い出すが,そんなことはぶっちゃけどうでもよろしいというか,むしろ「ぺっ…

しばらくお待ちください

ぺったんぽ……. ペッたんぽおおおぉぉぉぉぉ!!!!

水鉄砲がジャムった

何かここ2日ほど「史上最大に使えない妹」というクエリで飛んできている方が多いのだけれど,なぜ今更?