趣味+メモ用のブログです。
GNU/Linux関連、OSS関連情報、調査事項になるでしょうが、何を書くか分かりません。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
C++のテンプレートの弊害について
1)ROMを圧迫する 前回の記事のnm結果を見ればわかりますが、 テンプレート指定した型ごとに、関数を作成します。 (defineで関数を作成しているのと似ています) ROMを減らしたいのであれば、 テンプレートに、定数を指定したり、配列サイズ毎に作成したり することは極力避けたほうが、良いでしょう 2)コンパイルに時間がかかる 基本的にテンプレートは、ヘッダーに記述します。 C++のテンプレートのコンパイル方法は、 ①コンパイル時にテンプレート展開し ②リンク時に、同じエントリーを統合する というものです。 テンプレートヘッダが複数のCPPファイルでインクルード されていれば、当然①の時間が増えます。 ※ これは、@pragmeで抑えたり、cppに実装を書くなどの 手段はありますが、テンプレート使用について計画性が必要なります。 3)テンプレートの連鎖 テンプレートを使っているクラスを継承すれば、 そのクラスもテンプレートになってしまします。 テンプレートクラスを使用する関数は、もちろん テンプレート関数にする必要があります。 テンプレートの連鎖が起こってしまい、 1)や2)の問題が解決しにくくなります。 4)テンプレートの継承関係 テンプレート間では、親子などの関係が全くありません。 ですので、複数のテンプレートを同じように扱いたい場合は、 Baseクラスを作成する必要があります。 PR |
カレンダー
カテゴリー
フリーエリア
最新コメント
最新記事
(05/02)
(01/25)
(01/15)
(12/04)
(12/01)
最新トラックバック
ブログ内検索
最古記事
(02/21)
(07/12)
(07/12)
(07/18)
(07/20) |