我想寫如下:我應該做什麼而不是功能模板的部分專業化?
template <typename S, typename T> void foo() {
/* code for the general case */
}
template <typename T> void foo<MySType,T>() {
/* partially specialized code - for any kind of T, but when S is MySType */
}
,或者在其他情況下,執行以下操作:
template <typename S, typename T> void bar(const S& a, const T& b) {
/* code for the general case */
}
template <typename T> void bar<MySType,T>(const MySType& a, const T& b) {
/* partially specialized code - for any kind of T, but when S is MySType */
}
C++(11)不會讓我做這件事。現在
,我讀this question and its answers;假設我購買了爲什麼我們沒有部分模板專業化的解釋(或者假設我生活在現實中並且實際上想要編寫代碼)。那麼,什麼做我呢,而不是?
我實在不好意思在一個類中,除非那是絕對我的最後的手段包裝這些功能。
老實說,我潛入C++ 11和C++一般的越多,我越覺得「模板特」是正在發生的事情的可怕資格。沒有「模板專業化」這樣的東西 – user2485710
@ user2485710:對不起,我不明白......你能詳細說明嗎?或者鏈接到你認爲更長的地方? – einpoklum
不僅模板專業化是一件事情,它是一個圖靈完整的機器。不過,它可以讓你生氣。 – Potatoswatter