我有一個模板功能,我希望在不同的地方爲不同類型的模板化。
問題是,我想知道在編譯時是否有專門的給定類型以兩種不同的方式生成另一個模板。C++模板可以檢查給定類型的函數是否被重載?
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
我知道你可以像here那樣測試函數存在。
有關如何測試tobool是否專用的任何機會?
想象一下,我想要生成一個isbool(),如果tobool()已經被專門化了,它將返回true,否則返回false。
我理解正確嗎? :你想要一個爲每種類型T表示的元函數,表明tobool是否專門用於T? – 2010-11-28 20:33:20
是的,我需要知道T是否使用通用或專用的tobool。 – 2010-11-28 20:34:27