Re: [問題] template型態不同的辨識方法
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間14年前 (2012/06/11 15:12)推噓6(6推 0噓 6→)留言12則, 3人參與討論串2/2 (看更多)
※ 引述《towaomami (永恆的真實)》之銘言:
: EX:
: 在double時
: T answer=0;
: T sign=1;
:
: 在class Fraction時
: T answer(0,0,1);
: T sign(1,0,1);
: 這兩種不同的表達方式,我不知道該如何把它們寫在同個副程式中...
: 還是,
: 有辦法判斷傳進副程式的type是double or class Fraction嗎???
: 謝謝。
這通常就用 trait 解決
template <typename T> struct NumberTrait {};
template <> struct NumberTrait<double>
{
static double answer() { return 0.0; }
static double sign() { return 1.0; }
};
template <> struct NumberTrait<Fraction>
{
static Fraction answer() { return Fraction(0, 0, 1); }
static Fraction sign() { return Fraction(1, 0, 1); }
};
然後你就寫 NumberTrait<T>::answer()
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.3.139
→
06/11 15:22, , 1F
06/11 15:22, 1F
推
06/11 15:34, , 2F
06/11 15:34, 2F
推
06/11 15:36, , 3F
06/11 15:36, 3F
推
06/11 15:40, , 4F
06/11 15:40, 4F
→
06/11 16:32, , 5F
06/11 16:32, 5F
推
06/11 16:58, , 6F
06/11 16:58, 6F
→
06/11 17:20, , 7F
06/11 17:20, 7F
推
06/11 17:24, , 8F
06/11 17:24, 8F
→
06/11 19:01, , 9F
06/11 19:01, 9F
→
06/11 19:01, , 10F
06/11 19:01, 10F
→
06/11 19:02, , 11F
06/11 19:02, 11F
推
06/11 19:30, , 12F
06/11 19:30, 12F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章