我有一個模板化的類,我想只在類型爲double時啓用某個構造函數。這段代碼有什麼問題?Boost enable_if在構造函數中
template<typename T>
class B: public A<T>
{
public:
B(int arg1=0, typename boost::enable_if_c<boost::is_same<T, double>::value>=0);
}
int main(int argc,char *argv[])
{
B<double> B(6, 6);
}
,我發現了錯誤:「默認參數類型的參數‘的boost :: enable_if_c’有型‘詮釋’」,但我不知道是什麼這意味着。
非常感謝你提前。
貌似失蹤':: type' – Mat
,而遺漏的「詮釋」 – ysdx
什麼你想實現嗎?你編碼的是'B只能在T是雙的時候實例化'。但是,那麼使用'template'是什麼?在這種情況下,SFIANE不起作用,因爲'T'是類參數,而不是函數1。 – Lol4t0