うらおブログ(移転しました)スマートフォン用の表示で見るやねうらおブログ(移転しました)この広告は、90日以上更新していないブログに表示しています。template地獄program私は、大晦日からお正月の4日間、まるごと使ってC++のtemplateを駆使して書かれたプログラムをいじり倒していただけという、とんでもないお正月だった。気がついたら4日が過ぎていた。そのソースを書いたのは東大の人で、凄く洗練された素晴らしいプログラムではあるのだけど、困ったことにモジュール性が恐ろしく低い。C++はtemplateに関してはinclusion-modelを採用している。実体化したいtemplateの実装はheaderに書かなければならない。headerは、その実装のために必要なheaderをincludeする。そのincludeされたheaderもまたtemplateで書かれているので芋づる式に他のファイルを読み込んでいく。私はそのプログラムのごく一部のclassを流用したかっただけなのだけど、芋づるがひどすぎて切り離せない。悪いことに、オブジェクト指向プログラムにおいては、ひとつのclassにそのclassに関する操作をすべて詰め込んでしまおうとする傾向がある。そのプログラムもご多分に漏れずそうなっていて、ひとつのclassが凄い数のmethodを持っている。そのmethodがまたtemplateなもんだから、その実装がheaderに書いてあってと...気が遠くなるようなソースだった。classがあるので、このようなことにはならないが、C++で、AOPが出来ない場合、templateをここまで多用するなら、classにはmethodをあまり持たせるべきではないと思う。hoge);}みたいな形でHogeClassのmethodを用意してHoge::HogeClassMethod(hoge);のように呼び出して使ったほうがいいような気はする。(わかんないけど)もはや全然オブジェクト指向っぽくないけど、行き過ぎると原点回帰するっていうのはなんだか面白い。電子書籍になるに至るまでの話ブログちょっとだけ移転のお知らせ時代はまだゲームセンターあらしに追いつかないのかやねうら王、電王戦バージョン提出しました将棋の神様のレーティングはいくつなのか?月別アーカイブはてなブログをはじめよう!yaneuraoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。