ここでテンプレートはまだ実験中です。メッセージ処理クラステンプレートを書き込もうとしています。クラステンプレート内のテンプレートクラス(C++)
template <typename T> class MessageProcessor {
//constructor, destructor defined
//Code using t_ and other functions
foo(void) {
//More code in a perfectly fine method
}
private: T *t_
};
すべてがヘッダーファイルで定義されています。私はクラスを構築し、テストして、すべてがうまくいきます。さて、私はこれをやろうとしている:
template <typename T> class MessageProcesor {
//Same stuff as before
foo(void) {
//Same code as before in foo, but one new line:
t_->getMessageSender<MessageType>();
}
private: T *t_;
};
しかし、この行は「>」トークンの前に私の悪い表現型のエラーが発生します。
MessageTypeの定義に必要なヘッダーファイルを追加しました。私はこれまで何度もこの関数を使用してきましたが、この文脈ではありません。
私は、コンパイラは、未定義のクラステンプレート内でテンプレート関数が完全に定義されている(特殊化されていませんか?私は、テンプレートを「専門化する」ことを完全にgrokkingしていません。ほとんどの説明は、「完全」または「部分的」という概念を中心にしていますが、最初はそれを専門にするものではありません。
もっとコードを見たい場合はお詫び申し上げます。私は仕事でインターネットにアクセスできず、これが私がやっているところなので、私は精神的な「スクラッチパッド」にすべてを入れて帰宅させなければなりません。
ここにgetMessageSender関数コードを投稿してください。 –
食べ物に戻り値の型がありません。それはあなたの問題です –
あなたの所見はすべて正しいです。しかし、それらはタイプミスでした。実際の問題は、Faisal – user106740