またコメント機能が壊れてたみたいなので直しました

Filed in お知らせ

今回は長月のせいじゃないですw

どうもMTのプラグインのつくりがへちょくて、ブラックリストを参照しに行っているサーバのURLが無効になったのをきっかけにタイムアウトするようになっていたようです。参照先をいくつか削ったら動きました。

てゆかエラーログ見れないと原因の切り分けが大変なので当日分のログ見れるようにしてくだしあ>プロバイダ

C++テンプレートテクニック -第一章-

Filed in , 読書感想文

久しぶりの読書感想文ですよっと。

今回から13回に分けて紹介するのはC++テンプレートテクニックεπιστημη/高橋晶著です。

光栄な事に長月は本書の査読に参加させていただいていて、見本をいただいているので世間に出る一足先に、世界一早い内容のレビューをお送りします。(他の査読者の方々まだレビューしてないですよね? どきどきw)

今回扱うのは第一章。生き字引επιさんが書くC++がテンプレートに至る経緯のお話です。

 

本章はテンプレートによる多彩なテクニックの紹介に先駆けて、C++の昔話と言えばεπιστημηというぐらいC++の昔話に定評のあるεπιさんが、なぜC++にテンプレートが導入されたのか、その問いの答えにつながるテンプレート以前のC++で作られたコンテナのあり方と、なぜそれに不満があったのかを解説しています。

第一章の最初ではC++で使われたSmalltlk風コンテナがどういった物かを解説しています。Smalltalk風のコンテナとは、Object型を根に持ついわゆるピュアOOなオブジェクト階層を利用した物ですね。OOPに傾倒したならC++に限らず一度は通る道です。

C/初期C++で汎用のコンテナを作成する場合、究極的にはvoid*のコレクションにたどり着きます。たとえそれが他のOOPLに見られるObject型を根にした継承階層を利用した物であっても、本質的にvoid*から離れられていません。キャストでいっぱいのコードを見たことありませんか?

void*の呪縛から解き放たれるために必要と考えられたのがAdaで言う汎用体の様な総称型プログラミングの概念でした。

C++なりの総称型プログラミングの解としてのテンプレートですが、まだここでは扱いません。ここではテンプレート実装以前のC++で利用された、プリプロセッサによる擬似的なテンプレートについて語られます。

#defineプリプロセッサディレクティブや##プリプロセッサディレクティブを利用したテンプレート風コンテナのコーディングや、そうして作られたコンテナの使用法を、メリット/デメリットを交えて解説しています。これらにもまだ不満があることから、テンプレートの組み込みへの欲求が高まったと言います。

これらはεπιさんのお得意とするところですね。Cマガなどでのεπιさんの記事を読んだことがあるなら、Smalltalk風コンテナやgenerics.hの記事に見覚えのある方も多いでしょう。その意味では目新しさはありませんが、これから始まるこゆーい世界の入り口です。ウォーミングアップもかねて復習しましょう。

 

次回は第二章についてお送りします。


Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Oenology Post Formats
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Posts Calendar
Click to view/hide
2009年4月
« 3月   5月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
アーカイブ
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
最近の投稿
Click to view/hide