1 c++ templates specialization
我想在指向成员函数的情况下使用特殊模板.有没有办法检测到这个?现在我声明struct isPtrToMemberFunc,然后为每个类添加一个额外的模板(类TType = void)(现在只是1)并专门化额外的模板以查看它是否为isPtrToMemberFunc.有没有办法自动检测到这个?如果不是我当前的方法是最好的解决方案?
有一种方法,但它包括为这些成员函数重复每个和每个参数以及const/volatile修饰符的专门化.更简单的方法是使用boost.functiontypes
哪种方法:
template<typename T>
void doit(T t) {
if(boost::function_types::is_member_function_pointer<T>::value) {
std::cout << "it is";
// ...
} else {
std::cout << "it is not";
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
从这里抓住它.