我有一个模板函数,我希望在不同的地方为不同的类型模板化。
问题是我想在编译时知道给定类型是否有专门化以两种不同的方式生成另一个模板。
template<typename T>
bool tobool(const T&){ throw Exception("Can't cast to bool");};
template<> bool tobool<bool>(const bool &value){ return value;}
我知道你可以像这里一样测试函数是否存在。
关于如何测试工具是否已专业化的任何机会?
想象一下,我想生成一个 isbool(),如果 tobool() 已被特化则返回 true,否则返回 false。