我想打一個構造一類,使用任何整數類型,但符號和無符號區分。我不希望這是班級本身的模板。以下不起作用。 Visual Studio只是說沒有參數可以匹配。使符號和無符號變量可變參數的構造函數使用enable_if
class Thing{
public:
template<typename Integral>
Thing(
typename std::enable_if<
std::is_integral<Integral>::value &&
!std::is_same<Integral,bool>::value &&
std::is_signed<Integral>::value
,Integral
>::type num
){
//constructor using signed variable as input
}
template<typename Integral>
Thing(
typename std::enable_if<
std::is_integral<Integral>::value &&
!std::is_same<Integral,bool>::value &&
!std::is_signed<Integral>::value//notice this is different
,Integral
>::type num
){
//constructor using unsigned variable as input
}
};
它不工作?它在做什麼? :) – erip
缺乏'public'關鍵字的說了些什麼,至少約第一個錯誤,而試圖上面的代碼中,我會得到... – skypjack