2012-11-05 23 views
-3

使用相同參數創建函數模板的最佳方法是什麼?具有相同參數的函數模板

例如:

template<class T> 
int foo(const T &item) { 
    // ... 
    return item; 
}; 

template<class T, class NotUsed> 
char foo(const T &item) { 
    // ... 
    return item; 
}; 

int main() 
{ 

    std::cout << foo(1) << std::endl; // 1 
    std::cout << foo('1') << std::endl; // 1 

    return 0; 
} 
+3

你是什麼意思?這個問題和例子都不清楚。 (另外,無關,它是「函數模板」,而不是「模板函數」,儘管這是一個常見錯誤。) –

+4

'template T foo(const T&item)'有什麼問題?或'template const T&foo(const T&item)'? –

+0

@David Schwartz,我想明確指定類型 – Robbin

回答

4

從你的努力做我會建議作出的返回類型的模板參數。

template<class T, class Return = int> 
Return foo(const T &item) { 
    // ... 
    return item; 
}; 

int main() 
{ 
    std::cout << foo<int, int>(1) << std::endl; // 1 
    std::cout << foo<char, char>('1') << std::endl; // 1 
    return 0; 
} 
相關問題