|
/*========================================================*/ <<<あゆしゃのC言語プログラミング>>> /*========================================================*/ 第556回 ヒステリシス4 テンプレート版 発行 2005年4月25日(月曜日) 発行数 約2600 {magclick} /*========================================================*/ はじめに ( 決り文句 ) /*========================================================*/ ・このメールマガジンは、主にまぐまぐさんから発行しています。 ・ジャンルは、マルチメディアのプログラム、C言語です。 ・横60文字で作成し、インデントは大抵半角スペース4つです。 ・ここで扱うプログラムは、C言語と半光年以内のものです。 ・登録解除は、メルマガのホームページでお願いします。 ・過去ログはバックナンバー(下欄参照)を活用して下さい。 ・内容は私が感じたもので、最新の技術も、へたれもあります。 ・わかりやすさを優先させる為、たまに嘘があるかもしれません。 ・セキュリティ突破のため、暗号化された単語があります。 /*========================================================*/ ご挨拶 /*========================================================*/ こんにちは。あゆしゃです。 というわけで、中古のプリウスを購入しました。 最終的なお値段は、74万円となりました。 これだけのお金となると、札束を持ち歩くときがちょっと ドキドキでした。 ★強姦に襲われないかしら!? さて、襲われることなく、プリウスを購入できました。 いわずと知れたハイブリッドです。 乗ったときの最初の印象は、 「モーター音がする!」 というものでした。 キュインキュインいいながら、走ります。 とても未来チックでいい感じです。 さて、今回はまた相互紹介があります。 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− ■お勧めメルマガ (違いのわかる人は読んでいる。) 【名言メルマガ ≪日本一の果報者!〜貴方の人生、右肩上がり〜≫】 月を取りに行け、たとえ取り損ねても、そこから星を目指すことができる。 フランクリン・ルーズベルト(アメリカ合衆国大統領) http://www.mag2.com/m/0000130557.htm −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 名言を取り扱っているらしいメルマガです。 しかし、名言を紹介しているだけで、その説明は一切なしです。 私などのような無学な者には、意味が良くわかりませんでした。 毎日、数行程度で送られてくるため、時間はとられません。 ちょっとした うんちくをためるには、程よいかと思います。 {magclick} /*========================================================*/ 今回のお題 << ヒステリシス4 テンプレート版 >> /*========================================================*/ ヒステリシスについて、いろいろと関数を紹介してきました。 それらの関数は int で作りましたが、int 以外にも使いたい かもしれません。 そこで、テンプレートを使ってみようかと思いました。 テンプレートといえば、昔このメルマガで取り扱ったことが ありました。 調べてみたところ、2000年の3月ぐらいです。 当時は、CPUが200MHZ前後でした。 今の10分の1ですね。 メモリだって(たしか)64メガバイトですよ。 今の10分の1ですね。 ★すごい昔ですねぇ。 当時の結論としては、 ★テンプレートはコンパイルが重すぎて使えない という結果に達しました。 本当に重かったことを記憶しています。 しかし時が経ち、現在のナイスなCPUならば、テンプレートを 快適に扱えるのではないでしょうか、ということに気が付きまし た。 ちょっとやってみたところ、快適です。 ちっとも不自由さを感じません。 というわけで、21世紀はテンプレートです。 前回に紹介したhys2関数は、こんな感じです。 template <class T> T hys2( const T old, const T d, const T x1dn, const T x2dn, const T x1up, const T x2up, const T y1, const T y2 ) { T dn = con2( d, x1dn, x2dn, y1, y2 ); T up = con2( d, x1up, x2up, y1, y2 ); return mid( old, dn, up ); } テンプレートは、型情報をマクロ化する記述方法です。 ここでは、型をすべて「T」として扱っています。 これを使用する場合には、以下のようにします。 x2 = hys2( x2, x, 100, 200, 300, 400, 0, 500 ); という感じです。 引き数の型が何かをコンパイラが判断して、型情報を 置き換えてくれます。 /*========================================================*/ 注意しなければいけないのは、 ★使ったときにコンパイルされる という点です。 つまり、コーディングミスがあっても、使われないと コンパイルされないため、コンパイルエラーすら出ません。 書いてみて、コンパイルを掛けて、エラーが出ないからオッケー ではないということです。 ★何度か、はめられました。 /*========================================================*/ 少し簡単でしょうか、FEに忙しいのは内緒です。 {magclick} /*========================================================*/ さいごに /*========================================================*/ 今後の予定表です。 済 CImageサンプルの説明(していなかった?) 済 ヒステリシス1 ヒステリシスとは座標変換 済 ヒステリシス2 ヒステリシスとは状態遷移 済 ヒステリシス3 ヒステリシスとはファジィ 済 ヒステリシス4 テンプレートで作成しよう 第557回 ヒステリシス5 名前空間にまとめよう 第558回 テンプレート木構造1 TreeMasterをテンプレートに 第559回 テンプレート木構造2 クラス設計 第560回 テンプレート木構造3 追加、検索 第561回 テンプレート木構造4 ソート、left検索 第562回 テンプレート木構造5 マクロ定義 第563回 ガベージコレクタ1 テンプレートの隠蔽 第564回 ガベージコレクタ2 ユーザ設計 第565回 ガベージコレクタ3 クラス設計 第566回 ガベージコレクタ4 登録、削除処理 第567回 ガベージコレクタ5 Attach、Detachの処理 第568回 キャラエディッタ1 ソフトの説明 あくまでも予定です。 {magclick} /*========================================================*/ 次回予告 /*========================================================*/ 次回は4月27日(水曜日)に、第557回をお送りします。 お題は「ヒステリシス5 名前空間」 ゲームプログラムに欠かせないアルゴリズムの代表格である (らしい)、ヒステリシスアルゴリズムについて特集します。 4月29日から5月6日までゴールデンウィーク休みとします。 第558回は5月9日月曜日となります。 お楽しみに! /*========================================================*/ 最後の決り文句 /*========================================================*/ このメールマガジンは、まぐまぐさんから発行しています。 このメールマガジンを解除したい場合は、まぐまぐさんをご利用 ください。このメルマガのまぐまぐアイディーは最後にあります。 このメールマガジンには広告が挿入されていますか? このメールマガジンの内容に文面の引用はありませんか? めーらっくすの場合はめーらっくすの利用方に従ってください。 このメールマガジンの内容の、転用、流用、宣伝、リンク、 アクセルを踏むと未来の音がする なんて大歓迎です。 {magclick} /*========================================================*/ /*========================================================*/ 発行者 あゆしゃ ホームページ::あゆしゃの世界 http://ayusya.hp.infoseek.co.jp/ ご意見・ご感想・ご質問メール mailto:ayusya@flamenco.plala.or.jp まぐまぐ::アイディー 0000020674 まぐまぐ::登録と解除 http://www.mag2.com/m/0000020674.htm まぐまぐ::バックナンバー http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674 めーらっくす::アイディー MM3E1AEE285AB4F めーらっくす::登録と解除 http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F めーらっくす::バックナンバー★最近のものならこちらが便利★ http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F |