我想要一个指向成员函数的情况下的专门模板。有没有办法检测到这一点?现在我声明 struct isPtrToMemberFunc,然后为每个类(现在只有 1 个)添加一个额外的模板(类 TType=void)并专门化额外的模板以查看其 isPtrToMemberFunc。有没有办法自动检测到这个?如果不是,我目前的方法是最好的解决方案吗?
user34537
问问题
201 次
1 回答
6
有一种方法,但它包括您对每个数量的参数和这些成员函数的 const/volatile 修饰符重复您的专业化。一种更简单的方法是使用boost.functiontypes
which 为您执行此操作:
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";
// ...
}
}
从这里抓住它。
于 2009-01-04T14:05:23.853 回答