2014-12-03 4 views
0

У меня есть шаблонный шаблон, и я хочу использовать шаблонную функцию внутри этого класса. Теперь я не могу понять, как это сделать.Функция шаблона в шаблоном класса

Я варил вниз к простой программе:

#include <iostream> 
template<typename TInputType = short, 
typename TInternalType = float> 
class MyClass 
{ 
public: 
    void Print(); 
    template<typename TAnotherType> void DoSomething(TAnotherType t); 
}; 

template<typename TInputType, typename TInternalType> 
void MyClass<TInputType,TInternalType>::Print() 
{ 
    printf("whats up\n"); 
} 
template<typename TInputType, typename TInternalType, typename TAnotherType> 
void MyClass<TInputType,TInternalType>::DoSomething(TAnotherType t) 
{ 
    std::cout << "whats up:" << t << std::endl; 
} 

int main() { 

    MyClass<> tst; 
    tst.Print(); 
    tst.DoSomething<int>(10); 
    std::cout << "!!!Hello World!!!" << std::endl; 
    return 0; 
} 

Я получаю ошибки: неправильное использование неполного типа или ошибка: слишком много параметров шаблона в шаблоне переопределение

ответ

2

Ok так ... Ive были экспериментируя, и я понял это. Вам нужны два приглашения на шаблон:

... 
template<typename TInputType, typename TInternalType> 
template<typename TAnotherType> 
void MyClass<TInputType,TInternalType>::DoSomething(TAnotherType t) 
{ 
    std::cout << "whats up:" << t << std::endl; 
} 
... 
Смежные вопросы