Effective C++ Item 44 ― 2009年08月30日 16時27分20秒
- テンプレートは複数のクラスと関数を生成する。その為テンプレートに依存しないコードも含めて生成されるコードの量は大きくふくれ上がる。
- テンプレートの typename を利用しない型の関数への引数は、往々にしてテンプレートの引数を関数への引数かクラスへのメンバ変数として再実装することで回避することが出来る。
- 違う型であってもバイナリでの表現が機械内部で同じならば、同一のテンプレートのコードが使われる。
template<typename T, std::size_t n>
class ...
{
};
等の様に、typename 以外にも渡すことが出来る。しかし、この様にテンプレートで無い引数を元にしても、コードの生成量が膨れる要因になり副作用が大きい。この様な余計な引数は避けるようにする。
また、int と long 等型名は違くても、機械の内部表記が同じ場合は同一のコードが使われる。例えば、int と long が共に 4 バイトの環境であれば、コードも共有される。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2009/08/30/4549203/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。