トップページ > プログラム > 2014年09月02日 > GSaV/2XZ

書き込み順位&時間帯一覧

40 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000011000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
68
C++相談室 part114

書き込みレス一覧

C++相談室 part114
68 :デフォルトの名無しさん[]:2014/09/02(火) 14:57:29.12 ID:GSaV/2XZ
c++のtemplateがよく分からないので質問。

templateなクラスを以下のように実装してます。
 - ヘッダにtemplateなクラスを定義、メソッドはプロトタイプのみ。
 - メソッドをcppファイルに定義

このクラスを別のファイルから利用するとメソッドが未定義になり困ってます
(g++ *.cpp でリンクエラー)。どうやら各ファイルのオブジェクト生成時に
templateなクラスが上手く展開されないようです。

以下再現のコードです。

http://www1.axfc.net/u/3311017
DL pass: cpptemplate

make allで未定の問題が再現します。
make whyで無理やりtemplateなクラスを展開してます
(template クラスのメソッドを定義したcppファイルに、クラスを使用するコードを追加)。

以下、質問です。

STL等のtemplateなクラスを提供するライブラリではどうしてるのでしょうか?
(ユーザが使用するtemplateなクラスはヘッダファイルのみで完結?)
それともtemplateなクラスを展開させる良い方法があるのでしょうか?
C++相談室 part114
72 :68[sage]:2014/09/02(火) 15:11:33.52 ID:GSaV/2XZ
すばやい回答ありがとうございます。
>>69
了解です。
>>70
inlファイルの方法も勉強してみます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。