[問題] template + 不定參數
一份不定參數之 template 原始碼如下
// for pod
template<typename Type>
Type sum(size_t n, ...)
{
va_list pa;
Type sum = static_cast<Type>(0);
va_start(pa, n);
while(n--)
sum += va_arg(pa, Type);
va_end(pa);
return sum;
}
int main()
{
cout << "correct:" << sum<unsigned> (2, 1, 2) << endl;
cout << "error :" << sum<int> (2, 1.0, 2.0) << endl;
cout << "correct:" << sum<double> (2, 1.0, 2.0) << endl;
cout << "error :" << sum<float> (2, 1.0f, 2.0f) << endl;
cin.get();
return 0;
}
main 前三行都在意料之中,我納悶的是為何第四行出來的結果是錯的?
sum<float> (2, 1.0f , 2.0f) 最後會傳回 1.875,不知是否我誤會了什麼?
--
If there is no tomorrow,
I want to see u last time.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.161
※ 編輯: EdisonX 來自: 180.177.76.161 (04/04 22:20)
推
04/04 22:34, , 1F
04/04 22:34, 1F
→
04/04 22:34, , 2F
04/04 22:34, 2F
→
04/04 22:38, , 3F
04/04 22:38, 3F
→
04/04 23:05, , 4F
04/04 23:05, 4F
→
04/04 23:10, , 5F
04/04 23:10, 5F
→
04/04 23:17, , 6F
04/04 23:17, 6F
→
04/04 23:17, , 7F
04/04 23:17, 7F
推
04/04 23:18, , 8F
04/04 23:18, 8F
→
04/04 23:19, , 9F
04/04 23:19, 9F
→
04/04 23:30, , 10F
04/04 23:30, 10F
推
04/04 23:41, , 11F
04/04 23:41, 11F
→
04/04 23:43, , 12F
04/04 23:43, 12F
→
04/05 00:15, , 13F
04/05 00:15, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章