18

*.hpp ファイルにテンプレート宣言を記述し、*.hpp からリンクされた *.inl ファイルにその「定義」を記述します。

ちょうどこのような:

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}

しかし、*.inl ファイルのテンプレート クラス内に追加のテンプレート化されたメソッドを記述する方法は?

//*.hpp
template <typename T1, typename T2>
class SomeClass
{
public:
    void someMethod();

    template <typename E>
    void extraTypedMethod(E & e);
};

//*.inl
template <typename T1, typename T2>
void SomeClass<T1, T2>::someMethod()
{
}

//how can I here define extraTypedmethod?
4

1 に答える 1

33

これがあなたの定義です:

template <typename T1, typename T2>
template <typename E>
void SomeClass<T1, T2>::extraTypedMethod(E & e)
{
}
于 2011-10-05T09:48:43.553 に答える