考慮以下代碼:typedef和模板專業化
typedef int type1;
typedef int type2;
template <typename>
struct some_trait;
template <>
struct some_trait<type1>
{
static const int something=1;
};
template <>
struct some_trait<type2>
{
static const int something=2;
};
因爲什麼編譯器看到的是some_trait<int>
兩個專業它將失敗。
最好的解決方法是什麼?
你怎麼能指望一個答案*什麼是解決這個問題的最好辦法*當你?沒有定義你的問題?這是一個常見的錯誤:詢問失敗的方法,而不是詢問實際問題。你想要解決什麼問題?是什麼讓你想要在'type1'和'type2'中添加特質?爲什麼你需要兩個'int'來區別? - 尋求答案的最大步驟是提出正確的問題。 – 2010-08-05 17:04:39