2011-10-05 87 views
17

我寫在* .HPP文件模板聲明,並在從* .HPP聯如何* .INL文件模板類中定義模板功能

就這樣* .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? 

回答

30

這是你的定義:

template <typename T1, typename T2> 
template <typename E> 
void SomeClass<T1, T2>::extraTypedMethod(E & e) 
{ 
}