2010-11-25 15 views
-1
class myclass { 
    // Definitions of cotrs and dtor... 
    // ... 
    // Defining a method of mine that needs a template 
    template < typename T > 
    void dosome(T& par); 
} 

cppファイルでの実装方法は? 私は、TIがこの良いと思った:メンバ関数のテンプレートの管理

template <typename T> 
void myclass::dosome<T>(T& par) { 
    // My code 
} 

しかし、コンパイラが本当に怒る... は、この文脈での構文は何ですか? Thankyou

答えて

1

構文が機能するために使用されるものである:

template<typename T> void myclass::dosome(T &par) { 
    // ... 
} 

ただし、通常、あなたがヘッダーにテンプレートdefinitinosを含める必要があります。

+0

はい、それは正しいです、私はしばらくしてから試しました...ありがとうございます。ああ、1つの質問、あなたはどういう意味ですか:「ヘッダーに入れてください」? – Andry

+0

@Andry - http://stackoverflow.com/questions/4111932/where-to-put-a-member-function-templateを参照してください。 – beldaz

4

ヘッダーにテンプレート定義全体が必要です。

+0

いいえ、テンプレートをメソッド全体に適用したくないです。 – Andry

+0

私はそれを管理することができました、それはほとんど正しいです、J. Callejaはそれを行うためのより良い方法ですが、コンパイラは最終的に両方を受け入れ、バグがどこか他にあった.. :) – Andry

+0

"私に言ったJ. Calleja "いいえ、Callejaはあなたにヘッダーにもそれを伝えるように言った。テンプレートメソッドの定義をCPPファイルに置くと、その翻訳単位でのみ*使用可能になります*。つまり、他のCPPファイルでそのテンプレートを使用することはできません。 – Mud

関連する問題