STLをつつき彫る0−ライブラリ実装の心得0。汚されないように注意を払え。2008-09-20 Sat 07:28
このテーマの記事ではSTLを実装していくピヨ♪内容が内容だけに更新頻度は少ないと思うけど、気長に待ってね♪それにしてもこの題名なんだろう?まさか・・・
ドリィちゃん「私が考えたんだけど、それが何か?」 なっ何でも無いピヨォ ドリィちゃん「ならいいわ。ライブラリにはよく_(アンダバー) + 大文字 + _(アンダバー) のマクロがある。それは何故?」 いきなり言われても・・・うーん。見やすいからかな? ドリィちゃん「あれが見やすいと本気で思う?」 うっ。いや、まぁ、みにくいと思うけど、欧米の人は見やすいのかも。 ドリィちゃん「不正解。考えが、甘いぃぃ」 えっ違うの!orzえっと、うーん。ハッカー的好みじゃない? ドリィちゃん「馬鹿。ハッカーは理由が無いものを好まないの!仕方が無いわねぇ。答えはマクロに汚されないようによ。」 うーん。意味がわからない・・・ ドリィちゃん「まったくぅ。それじゃあSTLは実装できないわ。わかりやすく言うと、野獣の群れに、私のように可憐な美女を放り込むということよ。」 えっ!・・・余計にわからないピヨ。ドリィちゃんだったら口で勝てるピヨォッ! ドリィちゃん「帰るわよ。」 ごめんごめん。そりゃ危ないね。でっどういう意味? ドリィちゃん「マクロはねぇ、範囲が無差別かつ広範囲だから上書きされる恐れがあるの。つまり、マクロ汚染の危険性があって事よ。」 なるピヨ。偶然にライブラリで使用しているマクロと同じ名前のマクロを定義されたら困るピヨか。でもそれならば、MAXPIYOというふうに語尾にPIYOを付加すればいいじゃない? ドリィちゃん「・・・もっもし、ピーター・イーシャ・吉田・オスマンの開発チームがあったらどうするのよ。ライブラリは星の数程のプログラマが使うものだからそういうことに気をつけないといけないの!_から始まる名前はC++標準規格で使用しないということになっているから安全なのよ。」 何故、一人だけ日本人なの?・・・まぁ、それはいいとしても、ライブラリの作者は大変だね。 ドリィちゃん「そうよ、わかればいいのよ。でも可読性がとっっっっても落ちるから、この連載ではアンダーバーはつけないわ。」 それがいいピヨね♪みんな、この連載ではアンダーバーをつけないけど、実際にSTLを実装する際には、マクロ名は_ + 大文字 + _ にしよう。絶対だよ。 じゃあ、今回はおしまい。それじゃあボクは勉強会へいくよ。とぉー |
この記事のコメント先頭_はライブラリ作者が使用するわけじゃないですよ。
先頭_と、連続した_は処理系に予約されてるんです。 なのでコンパイラに付属してるライブラリには_が先頭に付いているのです。 STLだから_Iteratorとか_Valueとかを使っているのではありません。 実際、Boostなんかは先頭_使ってないですよ
あれ?おかしいな・・・
STLの実装を解説した本を読んだらそう書いていたのに・・・ じゃあ理由は何なんだろう・・・ うーん。余計にわからなくなった・・・
2008-09-22 Mon 12:35 | URL | インドリ #-[ 内容変更]
|
コメントの投稿 |
||
|
|
||
| 管理者だけに閲覧 | ||
|
|
||
この記事のトラックバック |
|
| 無差別に技術をついばむ鳥 |
|