2012-02-01から1ヶ月間の記事一覧

テンプレートを使ったポリシー(Policy)による処理の切り替え

C++

コンパイル時に処理を切り替えたい場合に使用。Strategyパターンでは継承により処理を切り替えるが、こちらはテンプレートパラメーターで処理を切り替える。以下のサンプルコードは上述のLINK先のStrategyパターンのをもじって書いた。複数の特徴(戦略)を…

再帰テンプレートでべき乗を計算

C++

タイトル通り、templateを再帰的に使用することで関数チックな動作をさせる。0の場合を特殊化することで計算をうまく終了させている。また2つのtemplate引数がある場合の特殊化の書き方も覚えておきたい。 #include<iostream> using namespace std; //べき乗を計算 t</iostream>…

パラメータ化継承

C++

テンプレート引数で基本クラスを指定する手法らしい。発想としてはデコレーターパターンに近いような気がする。ここでは文字列の出力を太字・イタリック・あるいはその合成に指定できるようなサンプルコードを書く。 #include <string> #include<iostream> using namespace std</iostream></string>…

配列の要素数・最終要素を返す関数

C++

C++のテンプレートに関する本を斜め読みしているので、面白そうな奴だけでもまとめておこうと。 配列の要素数を返す関数 配列の最終要素を返す関数 を作成する。template引数に整数値を使用できるというところがポイント。 #include<iostream> using namespace std; //</iostream>…

Rcpp・inlineパッケージを使ってC++とRを連携させる

R C++

「R単体だと遅いので計算のボトルネックはC++で書くようにすればいいんじゃないか、せっかくそのためのRcppなる便利パッケージもあるし」とずっと思っていたものの毎回インストール方法を調べることすら億劫がってやっていなかったのですが、前回の記事に書…