我已經閱讀了很多關於推導變量類型的文章,都使用auto和without。我認爲我只有兩個問題。使用模板vs功能的好處以及如何推導模板中的類型
讓我們以一個簡單的範圍函數爲例。我可以把它的模板,並把它稱爲:
template <class T, T min, T max> bool inRange(T value) {
return min <= value && value <= max;
}
bool bbb = inRange<int, 5, 10>(7);
或者我可以這樣做:
template <class T> bool inRange(T min, T max, T value) {
return min <= value && value <= max;
}
bool bbb = inRange(5, 10, 7);
問題:
有沒有辦法(短創建多個模板1,每個模板用於短,int,long,double等),可以推導出類型,板可以與
inRange<min, max>(value)
被稱爲是不是有在
inRange<min, max>(value)
爲inRange(min, max, value)
'inRange(value)'只在'min' /'max'是常量時才起作用。 –
melpomene
已經有一些建議允許扣除非類型模板參數的類型,但它們還沒有準備好。 –